import type { ActionDefinition } from '../types.js';
export interface CredentialTarget {
    type: 'password' | 'api_key' | 'oauth_token' | 'session' | 'ssh_key' | 'certificate';
    userId?: string;
    keyId?: string;
    sessionId?: string;
    scope?: string;
}
export interface RevocationResult {
    credentialType: string;
    identifier: string;
    revoked: boolean;
    timestamp: Date;
    previousState?: unknown;
}
export interface RevocationRollbackData {
    revocations: RevocationResult[];
    incidentId: string;
    canRestore: boolean;
}
export interface CredentialService {
    /** Invalidate user password and require reset */
    invalidatePassword(userId: string): Promise<{
        success: boolean;
        resetToken?: string;
    }>;
    /** Revoke API keys for a user */
    revokeApiKeys(userId: string, keyIds?: string[]): Promise<{
        success: boolean;
        revokedCount: number;
        keyIds: string[];
    }>;
    /** Revoke OAuth tokens */
    revokeOAuthTokens(userId: string, clientIds?: string[]): Promise<{
        success: boolean;
        revokedCount: number;
    }>;
    /** Terminate all active sessions */
    terminateSessions(userId: string, sessionIds?: string[]): Promise<{
        success: boolean;
        terminatedCount: number;
    }>;
    /** Revoke SSH keys */
    revokeSshKeys(userId: string, keyIds?: string[]): Promise<{
        success: boolean;
        revokedCount: number;
    }>;
    /** Revoke certificates */
    revokeCertificates(userId: string, certIds?: string[]): Promise<{
        success: boolean;
        revokedCount: number;
    }>;
    /** Get all active credentials for a user (for comprehensive revocation) */
    getActiveCredentials(userId: string): Promise<{
        apiKeys: string[];
        oauthClients: string[];
        activeSessions: string[];
        sshKeys: string[];
        certificates: string[];
    }>;
}
export declare function setCredentialService(service: CredentialService): void;
export declare function getCredentialService(): CredentialService;
/** Create a mock credential service for testing only. */
export declare function createMockCredentialService(): CredentialService;
export declare const revokeCredentialsAction: ActionDefinition;
export default revokeCredentialsAction;
//# sourceMappingURL=revoke-credentials.d.ts.map