import { LitElement, PropertyValues } from 'lit';
import { ShadowPartsController } from '../../controllers/shadow-parts-controller';
import { iconNamesType } from '../../utils/icons';
declare global {
    interface HTMLElementTagNameMap {
        "wy-dropdown": WyDropdown;
        "wy-dropdown-item": WyDropdownItem;
        "wy-dropdown-option": WyDropdownOption;
        "wy-dropdown-divider": WyDropdownDivider;
    }
}
/**
 * Dropdown button with menu.
 *
 * Uses the native Popover API.
 * See [MDN: Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API).
 *
 * **Used sub components**
 *
 * - [`<wy-button>`](./wy-button.ts)
 * - [`<wy-icon>`](./wy-icon.ts)
 *
 * @slot - Default menu items.
 * @slot button-content - The dropdown button content.
 * @csspart wy-dropdown - Wrapper for the dropdown
 * @csspart wy-dropdown-button-container - Container for the dropdown button.
 * @csspart wy-dropdown-button - The button for the dropdown.
 * @csspart wy-dropdown-button-icon - The icon for the dropdown button.
 * @csspart wy-dropdown-menu - The menu for the dropdown.
 */
export declare class WyDropdown extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * Horizontal direction of the menu.
     */
    directionX: "left" | "right";
    /**
     * Vertical direction of the menu.
     */
    directionY: "up" | "down";
    /**
     * Name of the icon for the dropdown button.
     */
    icon: iconNamesType;
    /**
     * Smaller dropdown button.
     */
    small: boolean;
    /**
     * Set disabled state.
     */
    disabled: boolean;
    /**
     * Floating-ui compatible positioning
     * @internal
     */
    private _placement;
    /**
     * Is the menu shown?
     */
    showMenu: boolean;
    /**
     * Any nodes assigned to the `button` slot.
     * @internal
     */
    private _slotButton;
    /**
     * Cleanup function from Floating-ui.
     * @internal
     */
    private computePositionCleanup?;
    private buttonRef;
    private menuRef;
    constructor();
    private _documentClickHandler;
    private handleClose;
    private handleClickToggle;
    protected willUpdate(changedProperties: PropertyValues<this>): void;
    render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    protected firstUpdated(_changedProperties: PropertyValues<this>): void;
    disconnectedCallback(): void;
}
/**
 * Item with text and optional icon for the dropdown menu.
 *
 * @slot - Default slot for icon and text.
 * @csspart wy-dropdown-item - The container for the dropdown item.
 * @csspart wy-active - Active state for the dropdown item.
 */
export declare class WyDropdownItem extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * Sets the state to active.
     */
    active: boolean;
    render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
/**
 * Item with a selected state icon for the dropdown menu.
 *
 * Defaults to a check mark as selected icon.
 *
 * ## Used sub components
 *
 * - [`<wy-icon>`](./wy-icon)
 *
 * @slot - Default slot for text.
 * @slot icon - Slot for selected icon.
 * @csspart wy-dropdown-item - The container for the dropdown item.
 * @csspart wy-dropdown-option - Option styling for the dropdown item.
 * @csspart wy-dropdown-option-icon - The icon for the dropdown option.
 * @csspart wy-active - Active state for the dropdown item.
 * @csspart wy-selected - State when the dropdown item is the currently selected option.
 */
export declare class WyDropdownOption extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * Sets the active state for the item.
     */
    active: boolean;
    /**
     * Sets selected state for the item. This shows the icon.
     */
    selected: boolean;
    render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
/**
 * Horizontal dropdown item divider.
 *
 * @csspart wy-dropdown-divider - Horizontal ruler.
 */
export declare class WyDropdownDivider extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
//# sourceMappingURL=wy-dropdown.d.ts.map