import { Cache } from './core/cache-storage';
/**
 * Configuration options for Html2Canvas
 *
 * This class manages global configuration without using module-level static variables.
 * Each html2canvas invocation can have its own configuration instance.
 */
export interface ConfigOptions {
    /**
     * Window object to use for DOM operations
     */
    window?: Window;
    /**
     * CSP nonce for inline styles
     * See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
     */
    cspNonce?: string;
    /**
     * Cache instance to reuse across multiple calls
     * Useful for avoiding redundant image loads
     */
    cache?: Cache;
}
/**
 * Html2Canvas Configuration
 *
 * Manages configuration state for html2canvas rendering.
 * Eliminates the need for global static variables.
 */
export declare class Html2CanvasConfig {
    readonly window: Window;
    readonly cspNonce?: string;
    readonly cache?: Cache;
    constructor(options?: ConfigOptions);
    /**
     * Create configuration from an element
     * Extracts window from element's owner document
     */
    static fromElement(element: HTMLElement, options?: Partial<ConfigOptions>): Html2CanvasConfig;
    /**
     * Clone configuration with override options
     */
    clone(options?: Partial<ConfigOptions>): Html2CanvasConfig;
}
/**
 * Set default configuration
 * @deprecated Pass configuration directly to html2canvas instead
 */
export declare function setDefaultConfig(config: Html2CanvasConfig): void;
/**
 * Get default configuration
 * @deprecated Pass configuration directly to html2canvas instead
 */
export declare function getDefaultConfig(): Html2CanvasConfig | null;
