import { Easing } from 'framer-motion';
import { default as React, ReactNode } from 'react';
interface LayoutRouterContextType {
    selectedId: string | null;
    navigate: (id: string) => void;
    goBack: () => void;
}
interface DismissibleContextType {
    setIsAtTop: (isAtTop: boolean) => void;
}
export declare const DismissibleContext: React.Context<DismissibleContextType | null>;
export declare const useLayoutRouter: () => LayoutRouterContextType;
interface LayoutRouterRootProps {
    children: ReactNode;
    duration?: number;
    easing?: Easing | Easing[];
}
export declare const LayoutRouter: {
    ({ children, duration, easing, }: LayoutRouterRootProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
} & {
    List: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
    Link: {
        ({ id, children, className, }: {
            id: string;
            children: ReactNode;
            className?: string;
        }): import("react/jsx-runtime").JSX.Element;
        displayName: string;
    };
    Screen: {
        ({ id, children, presentation, dismissible, dismissDirection, }: {
            id: string;
            children: ReactNode;
            presentation?: "fullscreen" | "modal";
            dismissible?: boolean;
            dismissDirection?: "x" | "y";
        }): import("react/jsx-runtime").JSX.Element;
        displayName: string;
    };
    SharedElement: {
        ({ tag, children, className, }: {
            tag: string;
            children: ReactNode;
            className?: string;
        }): import("react/jsx-runtime").JSX.Element;
        displayName: string;
    };
};
export {};
