import * as React from 'react';
import { AppShellConfig, AppShellAPI, AppShellState, PageShellConfig, PageShellAPI, SectionConfig, AuthShellConfig, AuthShellAPI } from '../app-shell/index.js';
export { AppShellAPI, AppShellConfig, AppShellState, AppShellSubscriber, AuthShellAPI, AuthShellConfig, BreakpointName, PageShellAPI, PageShellConfig, SectionConfig, createAppShell, createAuthShell, createPageShell, resolveBreakpoint } from '../app-shell/index.js';

interface AppShellContextValue {
    api: AppShellAPI;
    state: AppShellState;
}
declare function useAppShell(): AppShellContextValue;
interface AppShellProps {
    config?: AppShellConfig;
    children?: React.ReactNode;
    className?: string;
}
declare function AppShellRoot({ config, children, className }: AppShellProps): React.FunctionComponentElement<React.ProviderProps<AppShellContextValue | null>>;
declare namespace AppShellRoot {
    var displayName: string;
}
interface AppShellSidebarProps {
    children?: React.ReactNode;
    className?: string;
}
declare function Sidebar({ children, className }: AppShellSidebarProps): React.DetailedReactHTMLElement<{
    className: string;
    'data-collapsed': string | undefined;
    'data-open': string | undefined;
}, HTMLElement>;
declare namespace Sidebar {
    var displayName: string;
}
interface AppShellMainProps {
    children?: React.ReactNode;
    className?: string;
}
declare function Main({ children, className }: AppShellMainProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement>;
declare namespace Main {
    var displayName: string;
}
interface AppShellHeaderProps {
    children?: React.ReactNode;
    className?: string;
}
declare function Header({ children, className }: AppShellHeaderProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement>;
declare namespace Header {
    var displayName: string;
}
interface AppShellContentProps {
    children?: React.ReactNode;
    className?: string;
    /** Tailwind max-width class suffix, e.g. '6xl' -> max-w-6xl */
    maxWidth?: string;
}
declare function Content({ children, className, maxWidth }: AppShellContentProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement>;
declare namespace Content {
    var displayName: string;
}
interface AppShellMobileNavProps {
    children?: React.ReactNode;
    className?: string;
}
declare function MobileNav({ children, className }: AppShellMobileNavProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement> | null;
declare namespace MobileNav {
    var displayName: string;
}
interface AppShellOverlayProps {
    className?: string;
}
declare function Overlay({ className }: AppShellOverlayProps): React.DetailedReactHTMLElement<{
    className: string;
    onClick: () => void;
    'data-shell-overlay': string;
}, HTMLElement> | null;
declare namespace Overlay {
    var displayName: string;
}
declare const AppShell: typeof AppShellRoot & {
    Sidebar: typeof Sidebar;
    Main: typeof Main;
    Header: typeof Header;
    Content: typeof Content;
    MobileNav: typeof MobileNav;
    Overlay: typeof Overlay;
};

interface PageShellContextValue {
    api: PageShellAPI;
}
interface PageShellProps {
    config?: PageShellConfig;
    children?: React.ReactNode;
    className?: string;
}
declare function PageShellRoot({ config, children, className }: PageShellProps): React.FunctionComponentElement<React.ProviderProps<PageShellContextValue | null>>;
declare namespace PageShellRoot {
    var displayName: string;
}
interface PageShellNavProps {
    children?: React.ReactNode;
    className?: string;
}
declare function Nav({ children, className }: PageShellNavProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement>;
declare namespace Nav {
    var displayName: string;
}
interface PageShellSectionProps extends SectionConfig {
    children?: React.ReactNode;
    className?: string;
}
declare function Section({ children, className, fullWidth, maxWidth, padding, background, }: PageShellSectionProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement>;
declare namespace Section {
    var displayName: string;
}
interface PageShellFooterProps {
    children?: React.ReactNode;
    className?: string;
    columns?: number;
}
declare function Footer({ children, className, columns }: PageShellFooterProps): React.DetailedReactHTMLElement<{
    className: string;
}, HTMLElement>;
declare namespace Footer {
    var displayName: string;
}
declare const PageShell: typeof PageShellRoot & {
    Nav: typeof Nav;
    Section: typeof Section;
    Footer: typeof Footer;
};

interface AuthShellContextValue {
    api: AuthShellAPI;
}
interface AuthShellProps {
    config?: AuthShellConfig;
    children?: React.ReactNode;
    className?: string;
}
declare function AuthShellRoot({ config, children, className }: AuthShellProps): React.FunctionComponentElement<React.ProviderProps<AuthShellContextValue | null>>;
declare namespace AuthShellRoot {
    var displayName: string;
}
interface AuthShellCardProps {
    children?: React.ReactNode;
    className?: string;
}
declare function AuthShellCard({ children, className }: AuthShellCardProps): React.DetailedReactHTMLElement<{
    className: string;
    'data-auth-card': string;
}, HTMLElement>;
declare namespace AuthShellCard {
    var displayName: string;
}
declare const AuthShell: typeof AuthShellRoot & {
    Card: typeof AuthShellCard;
};

export { AppShell, type AppShellContentProps, type AppShellHeaderProps, type AppShellMainProps, type AppShellMobileNavProps, type AppShellOverlayProps, type AppShellProps, type AppShellSidebarProps, AuthShell, type AuthShellCardProps, type AuthShellProps, PageShell, type PageShellFooterProps, type PageShellNavProps, type PageShellProps, type PageShellSectionProps, useAppShell };
