/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IBottomSheetAdapter } from './bottom-sheet-adapter';
export interface IBottomSheetFoundation extends ICustomElementFoundation {
    backdropClose: boolean;
    escapeClose: boolean;
    open: boolean;
    fullscreen: boolean;
    showBackdrop: boolean;
    openCallback: () => void | Promise<void>;
    closeCallback: () => void | Promise<void>;
    beforeCloseCallback: () => boolean | Promise<boolean>;
}
export declare class BottomSheetFoundation implements IBottomSheetFoundation {
    _adapter: IBottomSheetAdapter;
    private _open;
    private _backdropClose;
    private _escapeClose;
    private _fullscreen;
    private _showBackdrop;
    private _openCallback;
    private _closeCallback;
    private _beforeCloseCallback;
    private _openTransitionEndHandler;
    private _closeTransitionEndHandler;
    private _documentKeydownHandler;
    private _backdropClickHandler;
    private _isDragging;
    private _dragContext;
    private _lastPosition;
    private _bodyScrollHandler;
    private _dragStartHandler;
    private _dragMoveHandler;
    private _dragEndHandler;
    private _dragCancelHandler;
    constructor(_adapter: IBottomSheetAdapter);
    initialize(): void;
    destroy(): void;
    private _setOpen;
    private _openBottomSheet;
    private _closeBottomSheet;
    private _onCloseTransitionEnd;
    private _onOpenTransitionEnd;
    private _onDocumentKeydown;
    private _onBackdropClick;
    private _tryClose;
    private _setBackdropClickListener;
    private _setDocumentKeydownListener;
    /** Controls whether clicking the backdrop closes the bottom sheet or not. */
    set backdropClose(value: boolean);
    get backdropClose(): boolean;
    /** Controls whether pressing the escape key closes the sheet or not. */
    set escapeClose(value: boolean);
    get escapeClose(): boolean;
    get open(): boolean;
    set open(value: boolean);
    get fullscreen(): boolean;
    set fullscreen(value: boolean);
    get showBackdrop(): boolean;
    set showBackdrop(value: boolean);
    get openCallback(): () => void | Promise<void>;
    set openCallback(callback: () => void | Promise<void>);
    get closeCallback(): () => void | Promise<void>;
    set closeCallback(callback: () => void | Promise<void>);
    get beforeCloseCallback(): () => boolean | Promise<boolean>;
    set beforeCloseCallback(callback: () => boolean | Promise<boolean>);
    /** If scrollable, allow drag to/from fullscreen, and make fullscreen on scroll. */
    private _initScrollableHandlers;
    private _onBodyScroll;
    private _onDragStart;
    private _onDragMove;
    private _onDragEnd;
    private _onDragCancel;
    private _dragComplete;
}
