/**
 * Modal Component
 *
 * Pure wrapper for modal dialogs using the native <dialog> element.
 * Provides backdrop, focus management, scroll locking, and keyboard interaction
 * without imposing any styling on content.
 *
 * Features:
 * - Native dialog element wrapper
 * - Dual API: declarative (open attribute) and imperative (show/hide methods)
 * - Protected mode with confirmation dialog
 * - Auto-hiding close button on hover (desktop only)
 * - Scroll locking with unique modal IDs
 * - Customizable backdrop via CSS variables
 *
 * @example
 * <ty-modal id="my-modal">
 *   <div class="ty-elevated p-6 rounded-lg max-w-md">
 *     <h3 class="text-lg font-semibold mb-4">Modal Title</h3>
 *     <p class="ty-text- mb-4">Modal content here</p>
 *     <ty-button onclick="this.closest('ty-modal').hide()">
 *       Close
 *     </ty-button>
 *   </div>
 * </ty-modal>
 */
/**
 * Modal attributes configuration
 */
export interface ModalAttributes {
    open: boolean;
    backdrop: boolean;
    closeOnOutsideClick: boolean;
    closeOnEscape: boolean;
    protected: boolean;
}
/**
 * Modal close event detail
 */
export interface ModalCloseDetail {
    reason: 'programmatic' | 'native';
    returnValue?: string;
}
/**
 * TyModal Web Component
 */
export declare class TyModal extends HTMLElement {
    /** Programmatic API methods */
    show?: () => void;
    hide?: () => void;
    /** Observed attributes */
    static get observedAttributes(): string[];
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null): void;
}
//# sourceMappingURL=modal.d.ts.map