/**
 * Optional retry configuration for wrapper methods
 * All parameters are optional - sensible defaults will be used
 */
export interface RetryOptions {
    /** Maximum number of retry attempts. Default: 3 for control operations, 2 for info operations */
    maxAttempts?: number;
    /** Base delay between retries in milliseconds. Default: 2000ms for control, 1000ms for info */
    baseDelay?: number;
    /** Retry strategy. Default: 'linear' for control operations, 'fixed' for info operations */
    strategy?: 'linear' | 'exponential' | 'fixed';
    /** Enable/disable retry. Default: true */
    enabled?: boolean;
}
/**
 * Internal retry configuration with all required fields
 */
export interface InternalRetryConfig {
    maxAttempts: number;
    baseDelay: number;
    strategy: 'linear' | 'exponential' | 'fixed';
    busyErrorPatterns: string[];
    sessionErrorPatterns: string[];
    onRetry?: (attempt: number, error: Error, delay: number) => void;
}
/**
 * Default retry configurations for different operation types
 */
export declare const DEFAULT_RETRY_CONFIGS: {
    readonly deviceControl: {
        readonly maxAttempts: 3;
        readonly baseDelay: 3000;
        readonly strategy: "linear";
        readonly busyErrorPatterns: readonly ["klap -1012", "device busy", "command timing issue"];
        readonly sessionErrorPatterns: readonly ["klap 1002", "session expired", "invalid terminal uuid"];
    };
    readonly infoRetrieval: {
        readonly maxAttempts: 2;
        readonly baseDelay: 1000;
        readonly strategy: "fixed";
        readonly busyErrorPatterns: readonly ["klap -1012", "device busy"];
        readonly sessionErrorPatterns: readonly ["klap 1002", "session expired"];
    };
    readonly energyMonitoring: {
        readonly maxAttempts: 2;
        readonly baseDelay: 1500;
        readonly strategy: "fixed";
        readonly busyErrorPatterns: readonly ["klap -1012", "device busy"];
        readonly sessionErrorPatterns: readonly ["klap 1002", "session expired"];
    };
};
/**
 * Convert user-provided RetryOptions to internal configuration
 */
export declare function createRetryConfig(operationType: keyof typeof DEFAULT_RETRY_CONFIGS, userOptions?: RetryOptions): InternalRetryConfig | null;
