import React, { type ReactNode, type Dispatch, type SetStateAction } from "react"; import type { Density, Theme, ThemeContextType } from "./types"; export interface NavbarInterface { navBarLeftNode?: string | ReactNode; navBarRightNode?: string | ReactNode; fullWidthNavbar: boolean; /** * Altura del navbar. * * @default "64px" */ height?: string; /** Clases del contenedor del navbar (incluye el botón). */ className?: string; } export interface LeftDrawerInterface { headerNode?: ReactNode; contentNode?: ReactNode; footerNode?: ReactNode; /** Clases del contenedor del drawer (header, contenido y footer). */ className?: string; /** * Ancho del drawer. Pisa cualquier clase de ancho que venga en `className`. * Si no se pasa, el drawer usa la clase `w-64`. * * @default "16rem" */ width?: string; } export interface AppLayoutContextType extends ThemeContextType { navbar: NavbarInterface | undefined; leftDrawer: LeftDrawerInterface | undefined; contentFooter: ReactNode | undefined; className: string; setNavbar: Dispatch>; setLeftDrawer: Dispatch>; setContentFooter: (node: ReactNode | undefined) => void; setClassName: (className: string) => void; setNavBarLeftNode: (node: string | ReactNode | undefined) => void; setNavbarRightNode: (node: string | ReactNode | undefined) => void; isLeftDrawerOpen: boolean; openLeftDrawer: () => void; closeLeftDrawer: () => void; toggleLeftDrawer: () => void; } interface AppLayoutProviderProps { children: ReactNode; initialTheme?: string | Theme; storageKey?: string; forceInitialTheme?: boolean; density?: Density; densityStorageKey?: string; forceInitialDensity?: boolean; onDensityChange?: (density: Density) => void; initialNavbar?: NavbarInterface; initialLeftDrawer?: LeftDrawerInterface; initialContentFooter?: ReactNode; className?: string; } export declare const AppLayoutProvider: React.FC; export declare const useAppLayout: () => AppLayoutContextType; export declare const useAppLayoutContext: () => boolean; export {}; //# sourceMappingURL=AppLayoutContext.d.ts.map