/**
 * AuditScheduler -- Schedules and executes compliance audit runs.
 *
 * Manages recurring audit configurations, persists schedule to disk,
 * and orchestrates audit execution across compliance bots.
 *
 * GATE 11: Compliance Audit Bot System (T-153)
 *
 * @connexum/ai-governance
 */
export type AuditFrequency = 'daily' | 'weekly' | 'monthly';
export type CheckStatus = 'pass' | 'fail' | 'warning' | 'skip';
export interface AuditScheduleConfig {
    /** How often this audit runs */
    frequency: AuditFrequency;
    /** Which compliance pack to audit */
    packId: string;
    /** Optional start time (ISO string) */
    startTime?: string;
}
export interface ScheduledAudit {
    /** Unique audit ID */
    id: string;
    /** Audit configuration */
    config: AuditScheduleConfig;
    /** When this audit was scheduled */
    createdAt: string;
    /** Whether this audit is active */
    active: boolean;
}
export interface CheckResult {
    /** Check identifier */
    id: string;
    /** Human-readable title */
    title: string;
    /** Check outcome */
    status: CheckStatus;
    /** Explanation of the result */
    detail: string;
    /** Supporting evidence (file paths, config values, etc.) */
    evidence?: string;
}
export interface AuditRunResult {
    /** The audit that was executed */
    auditId: string;
    /** Which compliance pack was audited */
    packId: string;
    /** When the audit ran */
    timestamp: string;
    /** Individual check results */
    checks: CheckResult[];
    /** Overall score (0-100) */
    score: number;
    /** Count of passed checks */
    passed: number;
    /** Count of failed checks */
    failed: number;
    /** Count of warning checks */
    warnings: number;
}
export interface AuditRunner {
    runAudit(): AuditRunResult;
}
export declare class AuditScheduler {
    private logDir;
    private packs;
    private schedules;
    private lastRuns;
    private runners;
    private scheduleFile;
    constructor(config: {
        logDir: string;
        packs?: string[];
    });
    /**
     * Register an audit runner for a given pack ID.
     */
    registerRunner(packId: string, runner: AuditRunner): void;
    /**
     * Schedule a new audit. Returns the audit ID.
     */
    scheduleAudit(config: AuditScheduleConfig): string;
    /**
     * Execute a scheduled audit immediately. Returns the run result.
     */
    runAudit(auditId: string): AuditRunResult;
    /**
     * List all scheduled audits.
     */
    getSchedule(): ScheduledAudit[];
    /**
     * Cancel a scheduled audit.
     */
    cancelAudit(auditId: string): boolean;
    /**
     * Get the result of the most recent run for an audit.
     */
    getLastRun(auditId: string): AuditRunResult | null;
    private persistSchedule;
    private loadSchedule;
}
/**
 * Compute score and counts from an array of CheckResults.
 */
export declare function computeAuditScore(checks: CheckResult[]): {
    score: number;
    passed: number;
    failed: number;
    warnings: number;
};
//# sourceMappingURL=scheduler.d.ts.map