import { DrawerMode } from '../../../Types/DrawerMode';
import { DrawerPosition } from '../../../Types/DrawerPosition';
import { OverlayElement } from '../Abstracts/OverlayElement';
import type { IDrawerElementProps } from './IDrawerElementProps';
declare const DrawerElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Animatable").IAnimatableProps & import("../../../Behaviors/Animatable").IAnimatable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Dimensionable").IDimensionableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Elevatable").IElevatableProps) & typeof OverlayElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Drawer - A hidden side view or container that can be opened from the side or bottom to display additional content.
 *
 * @element mosaik-drawer
 *
 * @slot - The defualt content element.
 * @slot end - The header end content element.
 *
 * @csspart root - The root container element.
 * @csspart elevation - The elevation element.
 * @csspart header - The header container element.
 * @csspart - The default content container element.
 * @csspart footer - The footer element.
 * @csspart backdrop - The backdrop element.
 *
 * @public
 */
export declare class DrawerElement extends DrawerElement_base implements IDrawerElementProps {
    private _isComposed;
    private _header;
    private _subHeader;
    private _position;
    private _mode;
    private _hasShadow;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `header` property.
     *
     * @public
     * @attr
     */
    get header(): string;
    set header(value: string);
    /**
     * Gets or sets the `subHeader` property.
     *
     * @public
     * @attr
     */
    get subHeader(): string;
    set subHeader(value: string);
    /**
     * Gets or sets the `position` property.
     *
     * @public
     * @attr
     */
    get position(): DrawerPosition;
    set position(value: DrawerPosition);
    /**
     * Gets or sets the `mode` property.
     *
     * @public
     * @attr
     */
    get mode(): DrawerMode;
    set mode(value: DrawerMode);
    /**
     * Gets or sets the `isComposed` property.
     *
     * @public
     * @readonly
     * @attr
     */
    get isComposed(): boolean;
    private set isComposed(value);
    /**
     * Gets or sets the `hasShadow` property.
     *
     * @public
     * @attr
     */
    get hasShadow(): boolean;
    set hasShadow(value: boolean);
    /**
     * Opens the `DrawerElement`.
     *
     * @public
     * @override
     */
    open(): Promise<void>;
    /**
     * Closes the `DrawerElement`.
     *
     * @public
     * @override
     */
    close(): Promise<boolean>;
    /**
     * @public
     */
    toggle(): Promise<void>;
    /**
     * @public
     */
    innerOffsetWidth(): number;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
}
/**
* @public
*/
export declare namespace DrawerElement {
    type Props = IDrawerElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-drawer': DrawerElement;
    }
}
export {};
//# sourceMappingURL=DrawerElement.d.ts.map