import type { ReactNode } from "react";
import type { ComponentType } from "./tools/ComponentType";
import type { ThemeProviderProps } from "onyxia-ui";
export declare const scrollableDivClassName = "GlScrollable";
export declare type HeaderOptions = HeaderOptions.Fixed | HeaderOptions.TopOfPage;
export declare namespace HeaderOptions {
    type Fixed = {
        position: "fixed";
        /** Default false */
        isRetracted?: boolean | "smart";
    };
    type TopOfPage = {
        position: "top of page";
        /** Default false */
        isRetracted?: boolean;
        /** Default false */
        doDelegateScroll?: boolean;
    };
}
export declare type GlTemplateProps = {
    header?: ReactNode;
    footer?: ReactNode;
    SplashScreenLogo?: ComponentType<{
        className: string;
    }>;
    splashScreenLogoFillColor?: string;
    children?: ReactNode;
    ThemeProvider?: ComponentType<{
        splashScreen?: NonNullable<ThemeProviderProps["splashScreen"]>;
        children: ReactNode;
    }>;
    headerOptions?: HeaderOptions;
};
export declare const GlTemplate: import("react").MemoExoticComponent<(props: GlTemplateProps) => JSX.Element>;
