interface PageTitleState { entries: Record; setEntry: (id: number, title: string) => void; removeEntry: (id: number) => void; } export declare const usePageTitleStore: import("zustand").UseBoundStore>; /** * The winning title is the deepest-rendered instance: ids are assigned during * render (parents render before children), so the highest id is the most * deeply nested / most recently mounted `PageTitle`. */ export declare const selectPageTitle: (state: PageTitleState) => string; /** * Sets the browser tab title for the page, react-helmet style: render it * anywhere; the deepest instance wins, and unmounting falls back to the next * one up (so a nested route's title overrides its parent layout's title only * while mounted). The shell appends the site name automatically. * * Passing `undefined`/empty leaves the current title untouched, which allows * deferring until data loads: `usePageTitle(record?.name)`. */ export declare const usePageTitle: (title?: string) => void; export interface PageTitleProps { /** The page's tab title. String children work too: `Home` */ title?: string; children?: string; } /** * Component form of {@link usePageTitle}. Renders nothing. * * ```jsx * Timesheets // parent route * // nested route wins while mounted * ``` */ export declare const PageTitle: ({ title, children }: PageTitleProps) => any; export {}; //# sourceMappingURL=pageTitle.d.ts.map