import { IconSet } from '../icons/index';
export interface TopMenuBarBreadcrumb {
    label: string;
    href?: string;
}
export interface TopMenuBarAction {
    id: string;
    label: string;
    icon?: string;
    href?: string;
    target?: string;
    badge?: boolean | string | number;
    className?: string;
    showLabel?: boolean;
    attributes?: Record<string, string | number | boolean | null | undefined>;
    onClick?: () => void;
}
export type TopMenuBarActionInput = TopMenuBarAction | HTMLElement;
export interface TopMenuBarUser {
    name: string;
    detail?: string;
    initials?: string;
    avatarUrl?: string;
    menuLabel?: string;
    actions?: TopMenuBarAction[];
}
export interface TopMenuBarConfig {
    container?: HTMLElement | string;
    product?: string;
    current?: string;
    breadcrumbs?: TopMenuBarBreadcrumb[];
    beforeActions?: HTMLElement | HTMLElement[];
    actions?: TopMenuBarActionInput[];
    afterActions?: HTMLElement | HTMLElement[];
    user?: TopMenuBarUser;
    iconSet?: IconSet;
    className?: string;
}
export interface AppShellConfig {
    container?: HTMLElement | string;
    sidebar?: HTMLElement;
    header?: HTMLElement;
    topbar?: HTMLElement | TopMenuBarConfig;
    content?: HTMLElement;
    metrics?: HTMLElement;
    variant?: 'default' | 'product';
    sidebarCollapsed?: boolean;
    className?: string;
}
export declare class TopMenuBar {
    readonly el: HTMLElement;
    private readonly cleanupFns;
    constructor(config?: TopMenuBarConfig);
    destroy(): void;
    private createUserMenu;
}
export declare class AppShell {
    readonly el: HTMLElement;
    readonly mainEl: HTMLElement;
    readonly contentEl: HTMLElement;
    constructor(config?: AppShellConfig);
}
export declare function createAppShell(config?: AppShellConfig): HTMLElement;
export declare function createTopMenuBar(config?: TopMenuBarConfig): HTMLElement;
export declare function createProductShell(config?: AppShellConfig): HTMLElement;
//# sourceMappingURL=app-shell.d.ts.map