import { EventEmitter } from '../../stencil-public-runtime';
/**
 * Details show a brief summary and on interaction expand to show additional content.
 *
 * @version 1.0
 * @status stable
 *
 * @slot - content that will be hidden / revealed
 * @slot icon-start - used for icons at the start of the handle. Rotates on open by default; use ::part selector to override.
 * @slot label - can be used when you wish to insert complex label markup
 * @slot icon-end - used for icons at the end of the handle.
 * Alternatively use `icon-expand` / `icon-collapse` slots. Rotates on open by default; use ::part selector to override.
 * @slot icon-expand - used for icons at the end of the handle when closed. Rotates on open by default; use ::part selector to override.
 * @slot icon-collapse - used for icons at the end of the handle when open. Rotates on open by default; use ::part selector to override.
 *
 * @part base - the root `details` element
 * @part header - the main `summary` ui control
 * @part label - the text wrapper of the ui control
 * @part icon - the wrapper around both start and end icons
 * @part icon--start - the icon wrapper at the start of the ui control
 * @part icon--end - the icon wrapper at the end of the ui control
 * @part body - the main body block
 * @part content-wrapper - the wrapper around the content
 * @part content - the main content
 */
export declare class NanoDetails {
    private mo?;
    private stateChanging;
    private slotCtrl;
    private detailsEl;
    private headerEl;
    private _bodyEl;
    get bodyEl(): HTMLElement;
    set bodyEl(el: HTMLElement);
    /** Summary / handle text. Use the `label` slot for HTML markup */
    label: string;
    /** Should item be open on load */
    open: boolean;
    /** Disables the details so it can't be toggled. */
    disabled: boolean;
    /** The size of the details. Primarily controls the trigger element and overall padding. */
    size: 'small' | 'medium' | 'large';
    /**
     * Emitted when the component opens.
     * Note: when wrapped in an accordion this event will not propagate. Use `nanoToggle` events instead.
     */
    nanoOpen: EventEmitter;
    /**
     * Emitted when the component closes.
     * Note: when wrapped in an accordion this event will not propagate. Use `nanoToggle` events instead.
     */
    nanoClose: EventEmitter;
    /** Emitted after the details opens and all transitions are complete. */
    nanoAfterOpen: EventEmitter;
    /** Emitted after the details closes and all transitions are complete. */
    nanoAfterClose: EventEmitter;
    toggleClick(): void;
    private onKeyDown;
    private onMouseDown;
    private handleTransitionEnd;
    private hide;
    private show;
    private attachMo;
    componentDidLoad(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    render(): any;
}
