import { type SecurityCenterData } from '@actuate-media/cms-core/security-center';
import type { ValidationIssue } from './useGeneralSettings.js';
/** The subset of security policy the tab can actually edit + enforce. */
export interface SecurityForm {
    mfaRequired: boolean;
    mfaGracePeriodDays: number;
    maxConcurrentSessions: number;
}
type SaveState = 'idle' | 'saving' | 'success' | 'error';
export interface UseSecuritySettings {
    loading: boolean;
    loadError: string | null;
    data: SecurityCenterData | null;
    form: SecurityForm;
    setField: <K extends keyof SecurityForm>(key: K, value: SecurityForm[K]) => void;
    dirty: boolean;
    issues: ValidationIssue[];
    hasErrors: boolean;
    canEdit: boolean;
    saveState: SaveState;
    saveError: string | null;
    save: () => Promise<void>;
    reset: () => void;
    refetch: () => void;
    revokeState: 'idle' | 'working' | 'done' | 'error';
    revokeAllOtherSessions: () => Promise<number | null>;
}
/**
 * Loads the Security Center (`GET /security`) — computed posture, cross-module
 * summaries, secret/encryption verdicts — and tracks the small editable policy
 * (MFA requirement + grace, concurrent-session cap). Save is lockout-safe: the
 * client mirrors the server's MFA guard so the operator gets immediate feedback,
 * and the server re-checks authoritatively.
 */
export declare function useSecuritySettings(canEdit: boolean): UseSecuritySettings;
export {};
//# sourceMappingURL=useSecuritySettings.d.ts.map