import { ControlledStackNavigationProps, NavigationProp, RouteProp, StackNavigationState, StackNavigatorProps, StackScreenComponent } from './types';
export * from './adapters/tanstack';
export declare function useNavigation<T extends Record<string, object | undefined>>(): NavigationProp<T>;
export declare function useRoute<T extends Record<string, object | undefined>, R extends keyof T>(): RouteProp<T, R>;
export declare function ControlledStackNavigator<T extends Record<string, object | undefined>>({ state, onNavigate, onPush, onReplace, onGoBack, onPop, onPopToTop, canGoBack, screenOptions: globalScreenOptions, children, }: ControlledStackNavigationProps<T>): import("react/jsx-runtime").JSX.Element;
/**
 * A utility hook that allows any external routing library (React Router, Next.js, etc.)
 * to manage the state of the ControlledStackNavigator simply by calling these methods.
 */
export declare function useExternalStackState<T extends Record<string, object | undefined>>(initialRouteName: keyof T, initialParams?: any): {
    state: StackNavigationState<T>;
    onNavigate: (name: keyof T, params?: any) => void;
    onPush: (name: keyof T, params?: any) => void;
    onReplace: (name: keyof T, params?: any) => void;
    onGoBack: () => void;
    onPop: (count?: number) => void;
    onPopToTop: () => void;
    canGoBack: () => boolean;
};
export declare function createStackNavigator<T extends Record<string, object | undefined>>(): {
    Navigator: (props: StackNavigatorProps<T>) => import("react/jsx-runtime").JSX.Element;
    Screen: <R extends keyof T>(_props: StackScreenComponent<T, R>["props"]) => null;
};
