export interface IOpts { base: string; routes: Record; links?: Record[]; metas?: Record[]; styles?: (Record | string)[]; favicons?: string[]; title?: string; headScripts?: (Record | string)[]; scripts?: (Record | string)[]; mountElementId?: string; esmScript?: boolean; modifyHTML?: (html: string, args: { path?: string; }) => Promise; historyType?: 'hash' | 'browser'; } export declare type IUserExtraRoute = string | { path: string; prerender: boolean; }; export interface IRoute { id: string; path?: string; index?: boolean; parentId?: string; } export interface IRoutesById { [id: string]: IRoute; } export interface IRouteCustom extends IRoute { [key: string]: any; } declare type LoaderReturn = T | Promise; export declare type UmiRequest = Partial & Pick; export interface IServerLoaderArgs { request: UmiRequest; } export declare type ServerLoader = (req?: IServerLoaderArgs) => LoaderReturn; export interface IMetaTag { name: string; content: string; } export interface IMetadata { title?: string; description?: string; keywords?: string[]; /** * @default 'en' */ lang?: string; metas?: IMetaTag[]; } export interface IhtmlPageOpts extends IMetadata { headScripts?: (Record | string)[]; links?: Record[]; styles?: string[]; favicons?: string[]; scripts?: (Record | string)[]; [key: string]: any; } export declare type MetadataLoader = (serverLoaderData: T, req?: IServerLoaderArgs) => LoaderReturn; export {};