/**
 * TyCopy Web Component
 *
 * Read-only field with copy-to-clipboard functionality
 * Perfect for API keys, tokens, URLs, code snippets, etc.
 *
 * Features:
 * - Read-only display (not an input)
 * - Copy icon on the right
 * - Icon animation on copy (copy → check → copy)
 * - Same styling as ty-input for consistency
 * - Label support
 * - Size and flavor variants
 */
import type { Flavor, Size } from '../types/common.js';
/**
 * TyCopy Element Interface
 */
export interface TyCopyElement extends HTMLElement {
    value: string;
    label: string;
    size: Size;
    flavor: Flavor;
    format: 'text' | 'code';
    disabled: boolean;
    required: boolean;
}
/**
 * Ty Copy Field Component
 *
 * @example
 * ```html
 * <!-- Basic copy field -->
 * <ty-copy
 *   label="API Key"
 *   value="sk_live_1234567890abcdef">
 * </ty-copy>
 *
 * <!-- Code format -->
 * <ty-copy
 *   label="Install Command"
 *   value="npm install @gersak/ty"
 *   format="code">
 * </ty-copy>
 *
 * <!-- Different sizes -->
 * <ty-copy size="sm" value="Small field"></ty-copy>
 * <ty-copy size="lg" value="Large field"></ty-copy>
 *
 * <!-- Semantic flavors -->
 * <ty-copy flavor="primary" value="Primary"></ty-copy>
 * <ty-copy flavor="success" value="Success"></ty-copy>
 * ```
 */
export declare class TyCopy extends HTMLElement implements TyCopyElement {
    private _value;
    private _label;
    private _size;
    private _flavor;
    private _format;
    private _multiline;
    private _disabled;
    private _required;
    private _copyTimeout;
    constructor();
    static get observedAttributes(): string[];
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
    /**
     * Validate flavor attribute
     */
    private validateFlavor;
    /**
     * Build CSS class list
     */
    private buildClassList;
    /**
     * Copy value to clipboard
     */
    private copyToClipboard;
    /**
     * Show copy success animation
     * Swaps copy icon → check icon → copy icon
     */
    private showCopySuccess;
    /**
     * Setup event listeners
     */
    private setupEventListeners;
    /**
     * Render the component
     */
    private render;
    get value(): string;
    set value(val: string);
    get label(): string;
    set label(val: string);
    get size(): Size;
    set size(value: Size);
    get flavor(): Flavor;
    set flavor(value: Flavor);
    get format(): 'text' | 'code';
    set format(value: 'text' | 'code');
    get disabled(): boolean;
    set disabled(value: boolean);
    get required(): boolean;
    set required(value: boolean);
}
//# sourceMappingURL=copy.d.ts.map