export interface ClientAcl { id?: number; clientid?: string; username: string; topic: string; action: 'publish' | 'subscribe' | 'pubsub'; permission: 'allow' | 'deny'; priority?: number; description?: string; created_at?: Date; updated_at?: Date; } export declare class ClientAclModel { static getAll(limit?: number, offset?: number): Promise; static getById(id: number): Promise; static getByUsername(username: string): Promise; static getByAction(action: string): Promise; static getByTopic(topic: string): Promise; static getByPermission(permission: string): Promise; static getCount(): Promise; static getActionStats(): Promise; static getPermissionStats(): Promise; static create(aclData: Omit): Promise; static update(id: number, updateData: Partial>): Promise; static delete(id: number): Promise; static deleteByUsername(username: string): Promise; static search(searchTerm: string, limit?: number, offset?: number): Promise; static getSearchCount(searchTerm: string): Promise; static createBatch(aclDataList: Omit[]): Promise; static copyToUser(sourceUsername: string, targetUsername: string): Promise; static deleteMultiple(ids: number[]): Promise; static getByUsernameAndAction(username: string, action: string): Promise; static checkPermission(username: string, topic: string, action: string): Promise; } //# sourceMappingURL=clientAcl.d.ts.map