import { Options } from './Options'; export interface LayoutComponent

{ /** * Component reference id, Auto generated if empty */ id?: string; /** * Name of your component */ name: string | number; /** * Styling options */ options?: Options; /** * Properties to pass down to the component */ passProps?: P; } export interface LayoutStackChildren { /** * Set component */ component?: LayoutComponent; /** * Set the external component */ externalComponent?: ExternalComponent; } export interface LayoutStack { /** * Set ID of the stack so you can use Navigation.mergeOptions to * update options */ id?: string; /** * Set children screens */ children?: LayoutStackChildren[]; /** * Set options */ options?: Options; } export interface LayoutTabsChildren { /** * Set stack */ stack?: LayoutStack; /** * Set component */ component?: LayoutComponent; /** * Set the external component */ externalComponent?: ExternalComponent; } export interface LayoutBottomTabs { /** * Set ID of the stack so you can use Navigation.mergeOptions to * update options */ id?: string; /** * Set the children screens */ children?: LayoutTabsChildren[]; /** * Set the bottom tabs options */ options?: Options; } export interface LayoutSideMenu { /** * Set ID of the stack so you can use Navigation.mergeOptions to * update options */ id?: string; /** * Set the left side bar */ left?: LayoutStackChildren; /** * Set the center view */ center: Layout; /** * Set the right side bar */ right?: LayoutStackChildren; /** * Set the bottom tabs options */ options?: Options; } export interface LayoutSplitView { /** * Set ID of the stack so you can use Navigation.mergeOptions to * update options */ id?: string; /** * Set master layout (the smaller screen, sidebar) */ master?: Layout; /** * Set detail layout (the larger screen, flexes) */ detail?: Layout; /** * Configure split view */ options?: Options; } export interface LayoutTopTabs { /** * Set the layout's id so Navigation.mergeOptions can be used to update options */ id?: string; /** * Set the children screens */ children?: LayoutTabsChildren[]; /** * Configure top tabs */ options?: Options; } export interface LayoutRoot { /** * Set the root */ root: Layout; modals?: any; overlays?: any; } export interface ExternalComponent { /** * Set the screen's id so Navigation.mergeOptions can be used to update options */ id?: string; /** * Name of your component */ name: string | number; /** * Configure component options */ options?: Options; /** * Properties to pass down to the component */ passProps?: object; } export interface Layout

{ /** * Set the component */ component?: LayoutComponent

; /** * Set the stack */ stack?: LayoutStack; /** * Set the bottom tabs */ bottomTabs?: LayoutBottomTabs; /** * Set the side menu */ sideMenu?: LayoutSideMenu; /** * Set the split view */ splitView?: LayoutSplitView; /** * Set the top tabs */ topTabs?: LayoutTopTabs; /** * Set the external component */ externalComponent?: ExternalComponent; }