import * as react_jsx_runtime from 'react/jsx-runtime';
import { NativeStackHeaderProps, NativeStackNavigationOptions } from '@react-navigation/native-stack';
import { Href } from 'expo-router';

interface Screen {
    name: string;
    requireAuth?: boolean;
    hideIfAuth?: boolean;
    ns?: string;
    userType?: string;
    redirectTo?: Href | "tab";
    header?: (props: NativeStackHeaderProps) => React.ReactNode;
    options?: NativeStackNavigationOptions;
}
interface LayoutGeneratorProps {
    screens: Screen[];
    userType?: string;
    initialRouteName?: string;
}
interface LayoutGeneratorConfig {
    header?: (props: NativeStackHeaderProps) => React.ReactNode;
}

declare const LayoutGenerator: ({ screens, userType, initialRouteName, }: LayoutGeneratorProps) => react_jsx_runtime.JSX.Element;

declare let layoutGeneratorConfig: LayoutGeneratorConfig;
declare const setLayoutGeneratorConfig: (config: LayoutGeneratorConfig) => void;

export { LayoutGenerator, layoutGeneratorConfig, setLayoutGeneratorConfig };
export type { LayoutGeneratorConfig, LayoutGeneratorProps, Screen };
