export interface LockoutStatus { locked: boolean; permanent_locked: boolean; remaining_seconds: number; attempts: number; lockout_count: number; permanent_lockout_count: number; delay_seconds?: number; } export type LockoutNotificationCallback = (event: { type: 'lockout_triggered' | 'permanent_lockout' | 'auth_failure'; timestamp: string; attempts: number; lockout_count: number; permanent_lockout_count: number; remaining_seconds?: number; source: 'cli' | 'api' | 'unknown'; ip?: string; user_agent?: string; }) => void; export declare class LockoutManager { private readonly lockoutPath; private readonly notificationCallback?; private notificationSource; private notificationIp?; private notificationUserAgent?; constructor(lockoutPath: string, notificationCallback?: LockoutNotificationCallback); setNotificationSource(source: 'cli' | 'api' | 'unknown', ip?: string, userAgent?: string): void; private sendNotification; private read; private write; /** Check current lockout status without modifying state. */ check(): Promise; /** * Record a failed attempt with progressive delays and permanent lockout support. * @param threshold - Number of attempts before lockout * @param baseSeconds - Base lockout duration in seconds * @param progressiveDelay - Whether to apply progressive delays before lockout * @param maxDelay - Maximum progressive delay in seconds (0 to disable) * @param permanentThreshold - Permanent lockout threshold (0 to disable) */ recordFailure(threshold?: number, baseSeconds?: number, progressiveDelay?: boolean, maxDelay?: number, permanentThreshold?: number): Promise; /** Reset all lockout state after a successful unlock. */ reset(): Promise; /** Clear permanent lockout (requires recovery key or admin action). */ clearPermanentLockout(): Promise; /** Get detailed lockout statistics. */ getStats(): Promise<{ attempts: number; lockout_count: number; permanent_lockout_count: number; permanent_locked: boolean; locked_until: string | null; }>; } //# sourceMappingURL=lockout.d.ts.map