export interface ClientAuth { id?: number; username: string; clientid: string; password?: string; password_hash: string; salt: string; use_salt?: boolean; status: 'enabled' | 'disabled'; device_type?: string; description?: string; is_superuser?: boolean; created_at?: Date; updated_at?: Date; last_login_at?: Date; auth_method?: 'password' | 'token' | 'certificate' | 'external'; auth_expiry?: Date | null; allowed_ip_ranges?: string | null; allowed_time_ranges?: string | null; auth_policy_id?: number | null; } export interface AuthMethod { id: number; method_name: string; method_type: 'password' | 'token' | 'certificate' | 'external'; config: any; is_active: boolean; created_at: Date; updated_at: Date; } export interface AuthPolicy { id: number; policy_name: string; priority: number; conditions: any; actions: any; is_active: boolean; description?: string; created_at: Date; updated_at: Date; } export interface ClientToken { id?: number; clientid: string; token_type: 'jwt' | 'temporary' | 'refresh'; token_value: string; expires_at: Date; status: 'active' | 'revoked' | 'expired'; created_at?: Date; updated_at?: Date; } export interface ClientCertificate { id?: number; clientid: string; certificate_pem: string; fingerprint: string; expires_at: Date; status: 'active' | 'revoked' | 'expired'; created_at?: Date; updated_at?: Date; } export declare class ClientAuthModel { static generateSalt(): string; static generatePasswordHash(password: string, salt: string, useSalt?: boolean): string; static generatePasswordHashPBKDF2(password: string, salt: string): string; static verifyPassword(password: string, salt: string, hash: string, useSalt?: boolean): boolean; static verifyDynamicPassword(username: string, clientid: string, password: string): Promise<{ valid: boolean; }>; static getAll(limit?: number, offset?: number): Promise; static getById(id: number): Promise; static getByUsernameAndClientid(username: string, clientid: string): Promise; static getByStatus(status: string): Promise; static getCount(): Promise; static getStatusStats(): Promise; static getDeviceTypeStats(): Promise; static create(clientAuthData: Omit): Promise; static update(id: number, updateData: Partial>): Promise; static updatePassword(id: number, newPassword: string, useSalt?: boolean): Promise; static delete(id: number): Promise; static search(searchTerm: string, limit?: number, offset?: number): Promise; static getSearchCount(searchTerm: string): Promise; static getByUsername(username: string): Promise; static getByClientId(clientid: string): Promise; static verifyClient(username: string, clientid: string, password: string): Promise; static getAuthMethods(): Promise; static getAuthMethodById(id: number): Promise; static getAuthMethodByName(name: string): Promise; static createAuthMethod(authMethod: Omit): Promise; static updateAuthMethod(id: number, updateData: Partial>): Promise; static deleteAuthMethod(id: number): Promise; static getAuthPolicies(): Promise; static getAuthPolicyById(id: number): Promise; static createAuthPolicy(authPolicy: Omit): Promise; static updateAuthPolicy(id: number, updateData: Partial>): Promise; static deleteAuthPolicy(id: number): Promise; static getClientTokens(clientid: string): Promise; static getClientTokenByValue(tokenValue: string): Promise; static createClientToken(clientToken: Omit): Promise; static updateClientToken(id: number, updateData: Partial>): Promise; static deleteClientToken(id: number): Promise; static getClientCertificates(clientid: string): Promise; static getClientCertificateByFingerprint(fingerprint: string): Promise; static createClientCertificate(clientCertificate: Omit): Promise; static updateClientCertificate(id: number, updateData: Partial>): Promise; static deleteClientCertificate(id: number): Promise; static dynamicAuthVerify(username: string, clientid: string, authData: any, ipAddress?: string): Promise<{ success: boolean; reason?: string; policy?: any; }>; private static verifyByMethod; private static applyAuthPolicy; private static isIpAllowed; private static isTimeAllowed; static findByUsernameAndClientId(username: string, clientid: string): Promise; static findByUsername(username: string): Promise; static updateLastLogin(username: string, clientid: string): Promise; static logAuthEvent(clientid: string, username: string, operationType: string, result: 'success' | 'failure', reason?: string, ipAddress?: string, topic?: string, authMethod?: string, policyId?: number, executionTime?: number): Promise; } //# sourceMappingURL=clientAuth.d.ts.map