import type * as drawer from '@zag-js/drawer';
export interface RootProps {
    /**
     * The unique identifier of the machine.
     */
    id?: string;
    /**
     * The ids of the elements in the drawer. Useful for composition.
     */
    ids?: Partial<{
        backdrop: string;
        positioner: string;
        content: string;
        title: string;
        trigger: string;
        grabber: string;
        grabberIndicator: string;
        closeTrigger: string;
    }>;
    /**
     * Whether to trap focus inside the sheet when it's opened.
     * @default true
     */
    trapFocus?: boolean;
    /**
     * Whether to prevent scrolling behind the sheet when it's opened
     * @default true
     */
    preventScroll?: boolean;
    /**
     * Whether to prevent pointer interaction outside the element and hide all content below it.
     * @default true
     */
    modal?: boolean;
    /**
     * Element to receive focus when the sheet is opened.
     */
    initialFocusEl?: () => HTMLElement | null;
    /**
     * Element to receive focus when the sheet is closed.
     */
    finalFocusEl?: () => HTMLElement | null;
    /**
     * Whether to restore focus to the element that had focus before the sheet was opened.
     */
    restoreFocus?: boolean;
    /**
     * The sheet's role
     * @default "dialog"
     */
    role?: 'dialog' | 'alertdialog';
    /**
     * Whether the drawer is open.
     */
    open?: boolean;
    /**
     * The initial open state of the drawer.
     */
    defaultOpen?: boolean;
    /**
     * Whether to close the drawer when the outside is clicked.
     * @default true
     */
    closeOnInteractOutside?: boolean;
    /**
     * Whether to close the drawer when the escape key is pressed.
     * @default true
     */
    closeOnEscape?: boolean;
    /**
     * The snap points of the drawer.
     * @default [1]
     */
    snapPoints?: (number | string)[];
    /**
     * The direction in which the drawer can be swiped.
     * @default "down"
     */
    swipeDirection?: drawer.SwipeDirection;
    /**
     * Whether the drawer should snap to sequential points when swiping.
     * @default false
     */
    snapToSequentialPoints?: boolean;
    /**
     * The threshold velocity (in pixels/s) for closing the drawer.
     * @default 700
     */
    swipeVelocityThreshold?: number;
    /**
     * The threshold distance for dismissing the drawer.
     * @default 0.25
     */
    closeThreshold?: number;
    /**
     * Whether to prevent dragging on scrollable elements.
     * @default true
     */
    preventDragOnScroll?: boolean;
    /**
     * The currently active snap point.
     */
    snapPoint?: number | string;
    /**
     * The default snap point of the drawer.
     * @default 1
     */
    defaultSnapPoint?: number | string;
    /**
     * The value of the trigger that currently open the drawer
     */
    triggerValue?: string | null;
    /**
     * The initial trigger value when rendered.
     * Use when you don't need to control the trigger value.
     */
    defaultTriggerValue?: string | null;
}
export type RootEmits = {
    /**
     * Function called when the open state changes.
     */
    openChange: [details: drawer.OpenChangeDetails];
    /**
     * Callback fired when the active snap point changes.
     */
    snapPointChange: [details: drawer.SnapPointChangeDetails];
    /**
     * Function called when the trigger value changes
     */
    triggerValueChange: [details: drawer.TriggerValueChangeDetails];
};
