/**
 * Input Logger
 *
 * Debug logging for keyboard input events and state transitions.
 * Only logs when debug mode is enabled.
 */
import type { UIState } from './types.js';
/**
 * Options for logging an input attempt
 */
export interface InputLogOptions {
    /** The key identifier that was pressed */
    key: string;
    /** The current UI state */
    state: UIState;
    /** Whether the input was valid for the current state */
    valid: boolean;
    /** Whether the input was throttled */
    throttled?: boolean;
    /** Reason for rejection (if not valid) */
    reason?: string;
}
/**
 * Options for logging a state transition
 */
export interface StateTransitionLogOptions {
    /** Previous UI state */
    from: UIState;
    /** New UI state */
    to: UIState;
    /** What triggered the transition */
    trigger: string;
}
/**
 * Options for logging a throttle rejection
 */
export interface ThrottleLogOptions {
    /** The action that was throttled */
    action: string;
    /** Time since last call in milliseconds */
    timeSinceLastCall: number;
    /** Required minimum time between calls */
    minInterval: number;
}
/**
 * Log an input attempt (only in debug mode)
 *
 * @param options - Input attempt details
 * @param debugEnabled - Whether debug mode is enabled
 */
export declare function logInputAttempt(options: InputLogOptions, debugEnabled: boolean): void;
/**
 * Log a state transition (only in debug mode)
 *
 * @param options - State transition details
 * @param debugEnabled - Whether debug mode is enabled
 */
export declare function logStateTransition(options: StateTransitionLogOptions, debugEnabled: boolean): void;
/**
 * Log a throttle rejection (only in debug mode)
 *
 * @param options - Throttle details
 * @param debugEnabled - Whether debug mode is enabled
 */
export declare function logThrottleRejection(options: ThrottleLogOptions, debugEnabled: boolean): void;
/**
 * Log a loading guard rejection (only in debug mode)
 *
 * @param action - The action that was blocked
 * @param loadingOperation - Which operation is currently loading
 * @param debugEnabled - Whether debug mode is enabled
 */
export declare function logLoadingGuardRejection(action: string, loadingOperation: string, debugEnabled: boolean): void;
/**
 * Log an edge case handling event (only in debug mode)
 *
 * @param event - Description of the edge case
 * @param details - Additional details
 * @param debugEnabled - Whether debug mode is enabled
 */
export declare function logEdgeCase(event: string, details: Record<string, unknown>, debugEnabled: boolean): void;
//# sourceMappingURL=input-logger.d.ts.map