/**
 * CopyButton component
 * @countermeasure/web-components/components/copy-button
 */
export interface CopyButtonConfig {
    /** Container element (or selector) the button is mounted into. */
    container: HTMLElement | string;
    /** Function that returns the text to copy. Called on each click. */
    getText: () => string;
    /**
     * Default button label.
     * @default 'Copy'
     */
    label?: string;
    /**
     * Label shown briefly after a successful copy.
     * @default 'Copied!'
     */
    copiedLabel?: string;
    /**
     * Duration in milliseconds the `copiedLabel` is displayed.
     * @default 2000
     */
    copiedDuration?: number;
}
export declare class CopyButton {
    private readonly config;
    private readonly containerEl;
    private readonly buttonEl;
    private readonly defaultLabel;
    private readonly copiedLabel;
    private readonly copiedDuration;
    private resetTimer;
    private destroyed;
    constructor(config: CopyButtonConfig);
    destroy(): void;
    private readonly handleClick;
    private copyToClipboard;
    private showCopiedFeedback;
}
//# sourceMappingURL=index.d.ts.map