import { AdminApiKey, InternalAdmin } from '../../../admin'; import { type AwilixContainer } from 'awilix'; import { AuthCradle } from '../../../container'; export declare class AdminService { private container; constructor(container: AwilixContainer); /** * Authenticate admin and create a session */ login(email: string, password: string): Promise<{ admin: InternalAdmin; token: string; }>; /** * Validate an admin session token */ validateToken(token: string): Promise<{ admin: InternalAdmin; }>; /** * Logout an admin by destroying their session */ logout(token: string): Promise; /** * Get an admin by ID */ getAdmin(adminId: string): Promise; /** * List all admins with pagination */ listAdmins(page?: number, limit?: number): Promise<{ admins: InternalAdmin[]; total: number; page: number; limit: number; }>; /** * Create a new admin */ createAdmin(adminData: Partial, password: string, creatorId?: string): Promise; /** * Update an existing admin */ updateAdmin(adminId: string, adminData: Partial, updaterId: string): Promise; /** * Delete an admin */ deleteAdmin(adminId: string, deleterId: string): Promise; /** * Get audit logs with pagination */ getAuditLogs(adminId?: string, page?: number, limit?: number): Promise<{ logs: any[]; total: number; page: number; limit: number; }>; /** * Grant a permission to an admin */ grantPermission(adminId: string, permission: string, granterId: string): Promise; /** * Revoke a permission from an admin */ revokePermission(adminId: string, permission: string, revokerId: string): Promise; /** * Get the current auth configuration */ getAuthConfig(): Promise<{ enabledProviders: string[]; authPolicy: { emailVerificationRequired: boolean; passwordReset: boolean; passwordChange: boolean; accountDeletion: boolean; smsVerificationRequired: boolean; loginAfterRegistration: boolean; }; passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumber: boolean; requireSpecialChar: boolean; maxAttempts: number; }; sessionSettings: { accessTokenTTL: string; refreshTokenTTL: string; tokenRotation: boolean; multipleSessions: boolean; }; mfaSettings: { required: boolean; allowedMethods: ("totp" | "sms" | "email")[]; }; adminFeature: { enabled: boolean; createInitialApiKey: boolean; initialApiKeyName: string; initialApiKeyScopes: string[]; }; rateLimiting: Record; id?: number | undefined; }>; /** * Update the auth configuration */ updateAuthConfig(config: any, adminId: string): Promise<{ enabledProviders: string[]; authPolicy: { emailVerificationRequired: boolean; passwordReset: boolean; passwordChange: boolean; accountDeletion: boolean; smsVerificationRequired: boolean; loginAfterRegistration: boolean; }; passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumber: boolean; requireSpecialChar: boolean; maxAttempts: number; }; sessionSettings: { accessTokenTTL: string; refreshTokenTTL: string; tokenRotation: boolean; multipleSessions: boolean; }; mfaSettings: { required: boolean; allowedMethods: ("totp" | "sms" | "email")[]; }; adminFeature: { enabled: boolean; createInitialApiKey: boolean; initialApiKeyName: string; initialApiKeyScopes: string[]; }; rateLimiting: Record; id?: number | undefined; }>; /** * Create a new API key for an admin */ createApiKey(adminId: string, options: { name: string; scopes?: string[]; expires_at?: Date | null; }): Promise<{ apiKey: AdminApiKey; fullKey: string; }>; /** * List all API keys for an admin */ listApiKeys(adminId: string): Promise; /** * Get an API key by ID */ getApiKey(keyId: string, adminId: string): Promise; /** * Update an API key */ updateApiKey(keyId: string, adminId: string, updates: { name?: string; scopes?: string[]; expires_at?: Date | null; }): Promise; /** * Delete an API key */ deleteApiKey(keyId: string, adminId: string): Promise; /** * Validate an API key and get the associated admin */ validateApiKey(apiKey: string): Promise<{ admin: InternalAdmin; scopes: string[]; }>; } //# sourceMappingURL=admin.service.d.ts.map