import { ITheme } from '@breadstone/mosaik-themes';
import { ISlottable } from '../../Behaviors/Slottable';
import { CustomElement } from '../Abstracts/CustomElement';
import { AppHeaderElement } from './AppHeaderElement';
import { IAppElementProps } from './IAppElementProps';
declare const AppElement_base: (abstract new (...args: Array<any>) => import("../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../Behaviors/Slottable").ISlottableProps & ISlottable) & typeof CustomElement & import("../../Behaviors/Themeable").IThemeableCtor;
/**
 * App - A comprehensive application shell component that provides the foundation layout structure for modern web applications.
 *
 * @description
 * Creates a complete application framework with integrated navigation drawers, headers, content areas, and responsive
 * layout management. Handles breakpoint-aware design, theme management, and provides structured slots for organizing
 * application navigation, branding, actions, and primary content in a cohesive shell architecture.
 *
 * @name AppElement
 * @element mosaik-app
 * @category Shell
 *
 * @slot content - Main content area for primary application content and views
 * @slot footer - Footer area for secondary information, links, and application metadata
 * @slot header - The header slot.
 * @slot headerActions - The headerActions slot.
 * @slot headerLogo - The headerLogo slot.
 * @slot headerMenu - The headerMenu slot.
 * @slot nav - Navigation drawer content area for primary navigation links and menu items
 *
 * @csspart content - Main content wrapper for application views and functionality
 * @csspart drawer - Navigation drawer container for side navigation elements
 * @csspart header - Application header section containing branding and navigation controls
 * @csspart nav - Navigation area within the drawer for menu items and links
 *
 * @cssprop {Color} --app-background-color - Background color for the application shell
 * @cssprop {String} --app-border-radius - The border radius CSS custom property.
 * @cssprop {String} --app-content-offset-top - The content offset top CSS custom property.
 * @cssprop {String} --app-drawer-height - The drawer height CSS custom property.
 * @cssprop {String} --app-drawer-width - Width of the navigation drawer when expanded
 * @cssprop {String} --app-font-family - The font family CSS custom property.
 * @cssprop {String} --app-font-letter-spacing - The font letter spacing CSS custom property.
 * @cssprop {String} --app-font-line-height - The font line height CSS custom property.
 * @cssprop {String} --app-font-size - The font size CSS custom property.
 * @cssprop {String} --app-font-text-decoration - The font text decoration CSS custom property.
 * @cssprop {String} --app-font-text-transform - The font text transform CSS custom property.
 * @cssprop {String} --app-font-weight - The font weight CSS custom property.
 * @cssprop {String} --app-foreground-color - The foreground color CSS custom property.
 * @cssprop {String} --app-gap - The gap CSS custom property.
 * @cssprop {String} --app-line-thickness - The line thickness CSS custom property.
 * @cssprop {String} --app-padding-bottom - The padding bottom CSS custom property.
 * @cssprop {String} --app-padding-left - The padding left CSS custom property.
 * @cssprop {String} --app-padding-right - The padding right CSS custom property.
 * @cssprop {String} --app-padding-top - The padding top CSS custom property.
 * @cssprop {String} --app-shadow - The shadow CSS custom property.
 * @cssprop {String} --app-shadow-blur - The shadow blur CSS custom property.
 * @cssprop {String} --app-shadow-color - The shadow color CSS custom property.
 * @cssprop {String} --app-shadow-offset-x - The shadow offset x CSS custom property.
 * @cssprop {String} --app-shadow-offset-y - The shadow offset y CSS custom property.
 * @cssprop {String} --app-shadow-spread - The shadow spread CSS custom property.
 * @cssprop {String} --app-transition-duration - The transition duration CSS custom property.
 * @cssprop {String} --app-transition-mode - The transition mode CSS custom property.
 * @cssprop {String} --app-transition-property - The transition property CSS custom property.
 * @cssprop {String} --app-translate - The translate CSS custom property.
 *
 * @dependency mosaik-app-header - The App Header element.
 * @dependency mosaik-drawer - The Drawer element.
 * @dependency mosaik-drawer-container - The Drawer Container element.
 * @dependency mosaik-drawer-content - The Drawer Content element.
 * @dependency mosaik-theme2 - The Theme2 element.
 *
 * @example
 * Basic application shell:
 * ```html
 * <mosaik-app>
 *   <nav slot="nav">
 *     <a href="/dashboard">Dashboard</a>
 *     <a href="/settings">Settings</a>
 *   </nav>
 *   <main slot="content">
 *     <p>Welcome to the application.</p>
 *   </main>
 * </mosaik-app>
 * ```
 *
 * @example
 * App with navigation and header:
 * ```html
 * <mosaik-app has-nav has-header>
 *   <mosaik-app-header></mosaik-app-header>
 *   <nav slot="nav">
 *     <a href="/">Home</a>
 *     <a href="/about">About</a>
 *   </nav>
 *   <main slot="content">
 *     <p>Application content here.</p>
 *   </main>
 *   <footer slot="footer">
 *     <p>© 2024 My Company.</p>
 *   </footer>
 * </mosaik-app>
 * ```
 *
 * @public
 */
export declare class AppElement extends AppElement_base implements IAppElementProps, ISlottable {
    private readonly _breakpointController;
    private _drawerElement;
    private _headerElement;
    private _contentElement;
    private _theme;
    private _isNavOpen;
    private _hasNav;
    private _isMobile;
    private _hasHeader;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `theme` property.
     *
     * @public
     */
    get theme(): ITheme | null;
    set theme(value: ITheme | null);
    /**
     * Gets or sets the `isNavOpen` property.
     *
     * @public
     * @attr
     */
    get isNavOpen(): boolean;
    set isNavOpen(value: boolean);
    /**
     * Gets or sets the `hasNav` property.
     *
     * @public
     * @attr
     */
    get hasNav(): boolean;
    set hasNav(value: boolean);
    /**
     * Gets or sets the `isMobile` property.
     *
     * @public
     * @readonly
     * @attr
     */
    get isMobile(): boolean;
    private set isMobile(value);
    /**
     * Gets or sets the `hasHeader` property.
     *
     * @public
     * @readonly
     * @attr
     */
    get hasHeader(): boolean;
    private set hasHeader(value);
    /**
     * Returns the `appHeaderElement` property.
     *
     * @hidden
     * @protected
     * @readonly
     */
    get header(): AppHeaderElement;
    /**
     * Returns the `contentElement` property.
     *
     * @hidden
     * @protected
     * @readonly
     */
    get content(): HTMLElement;
    /**
     * Toggles the navigation drawer.
     *
     * @public
     */
    toggleNavigation(): void;
    /**
     * Opens the navigation drawer.
     *
     * @public
     */
    openNavigation(): void;
    /**
     * Closes the navigation drawer.
     *
     * @public
     */
    closeNavigation(): void;
    onSlotChanges(slotName?: string): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     */
    protected onIsNavOpenPropertyChanged(_prev?: boolean, next?: boolean): void;
}
/**
 * @public
 */
export declare namespace AppElement {
    type Props = IAppElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-app': AppElement;
    }
}
export {};
//# sourceMappingURL=AppElement.d.ts.map