/**
 * Denial Tracking — CC denialTracking.ts parity.
 *
 * Tracks consecutive and total classifier denials to determine
 * when to fall back to interactive prompting.
 *
 * CC reference: src/utils/permissions/denialTracking.ts
 *
 * Integration:
 *   - recordDenial() after each classifier block
 *   - recordSuccess() after each classifier allow
 *   - shouldFallbackToPrompting() before skipping approval dialog
 */
export interface DenialTrackingState {
    consecutiveDenials: number;
    totalDenials: number;
}
export declare const DENIAL_LIMITS: {
    /** Max consecutive denials before falling back to prompting. */
    readonly maxConsecutive: 3;
    /** Max total denials in a session before forcing prompt mode. */
    readonly maxTotal: 20;
};
export declare function createDenialTrackingState(): DenialTrackingState;
/**
 * Record a classifier denial. Increments both counters.
 * Returns a new state object (immutable pattern).
 */
export declare function recordDenial(state: DenialTrackingState): DenialTrackingState;
/**
 * Record a classifier success. Resets consecutive counter only.
 * Returns same reference if no change needed (optimization).
 */
export declare function recordSuccess(state: DenialTrackingState): DenialTrackingState;
/**
 * Check if the classifier should fall back to interactive prompting.
 *
 * CC pattern: After N consecutive denials or M total denials,
 * the auto-classifier is likely miscalibrated — show the user
 * the approval dialog instead.
 */
export declare function shouldFallbackToPrompting(state: DenialTrackingState): boolean;
