/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElement } from '@tylertech/forge-core';
import { IBottomSheetDragEventData, IBottomSheetDragStartEventData } from './bottom-sheet-constants';
export interface IBottomSheetComponent extends ICustomElement {
    showBackdrop: boolean;
    backdropClose: boolean;
    escapeClose: boolean;
    open: boolean;
    fullscreen: boolean;
    openCallback: () => void | Promise<void>;
    closeCallback: () => void | Promise<void>;
    beforeCloseCallback: () => boolean | Promise<boolean>;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-bottom-sheet': IBottomSheetComponent;
    }
    interface HTMLElementEventMap {
        'forge-bottom-sheet-open': CustomEvent<void>;
        'forge-bottom-sheet-close': CustomEvent<void>;
        'forge-bottom-sheet-before-close': CustomEvent<void>;
        'forge-bottom-sheet-before-open': CustomEvent<void>;
        'forge-bottom-sheet-ready': CustomEvent<void>;
        'forge-bottom-sheet-drag-start': CustomEvent<IBottomSheetDragStartEventData>;
        'forge-bottom-sheet-dragged': CustomEvent<IBottomSheetDragEventData>;
        'forge-bottom-sheet-drag-end': CustomEvent<void>;
        'forge-bottom-sheet-drag-cancel': CustomEvent<void>;
        'forge-bottom-sheet-fullscreen': CustomEvent<boolean>;
    }
}
/**
 * The web component class behind the `<forge-bottom-sheet>` custom element.
 *
 * @tag forge-bottom-sheet
 */
export declare class BottomSheetComponent extends HTMLElement implements IBottomSheetComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, _oldValue: string, newValue: string): void;
    /** Controls whether clicking the backdrop closes the bottom-sheet or not. Default is true. */
    backdropClose: boolean;
    /** Controls whether pressing the escape key closes the bottom-sheet or not. Default is true. */
    escapeClose: boolean;
    /** Controls whether the bottom-sheet is open or not. Default is false. */
    open: boolean;
    /** Controls whether the bottom-sheet is full screen or not. Default is false. */
    fullscreen: boolean;
    /** Shows a backdrop to prevent interacting with other content until the bottom sheet is dismissed.  Default is false. */
    showBackdrop: boolean;
    /** The function to call when the bottom-sheet wants to open. */
    openCallback: () => void | Promise<void>;
    /** the function to call when the bottom-sheet wants to close. */
    closeCallback: () => void | Promise<void>;
    /** the function to call when the bottom-sheet wants to close. */
    beforeCloseCallback: () => boolean | Promise<boolean>;
}
