import { OpenChangeReason } from '@floating-ui/react';
export type Position = 'left' | 'right' | 'top' | 'bottom';
export type UseDrawerOptions = {
    opened?: boolean;
    duration?: number;
    defaultOpened?: boolean;
    dismissable?: boolean;
    position?: Position;
    title?: string;
    withCloseButton?: boolean;
    onOpenChange?: (open: boolean, event?: Event, reason?: OpenChangeReason) => void;
};
export declare const useDrawer: ({ opened, duration, defaultOpened, dismissable, position, title, withCloseButton, onOpenChange, }?: UseDrawerOptions) => {
    opened: boolean;
    dismissable: boolean;
    position: Position;
    duration: number;
    floatingContext: {
        x: number;
        y: number;
        placement: import("@floating-ui/react").Placement;
        strategy: import("@floating-ui/react").Strategy;
        middlewareData: import("@floating-ui/react").MiddlewareData;
        isPositioned: boolean;
        update: () => void;
        floatingStyles: React.CSSProperties;
        open: boolean;
        onOpenChange: (open: boolean, event?: Event, reason?: OpenChangeReason) => void;
        events: import("@floating-ui/react").FloatingEvents;
        dataRef: React.MutableRefObject<import("@floating-ui/react").ContextData>;
        nodeId: string | undefined;
        floatingId: string | undefined;
        refs: import("@floating-ui/react").ExtendedRefs<import("@floating-ui/react").ReferenceType>;
        elements: import("@floating-ui/react").ExtendedElements<import("@floating-ui/react").ReferenceType>;
    };
    interactions: import("@floating-ui/react").UseInteractionsReturn;
    transition: {
        isMounted: boolean;
        status: "initial" | "open" | "close" | "unmounted";
    };
    title: string | undefined;
    withCloseButton: boolean;
    portalNode: HTMLElement | null;
    setFloating: ((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void);
    setPortalNode: import("react").Dispatch<import("react").SetStateAction<HTMLElement | null>>;
    toggle: (open?: boolean) => void;
};
export type UseDrawerStore = ReturnType<typeof useDrawer>;
