import { props, render, update } from '../internals.js';
import type { BurgerProps, RenderOptions } from '../types';
declare const btn: unique symbol;
declare const updating: unique symbol;
declare const prepare: unique symbol;
export declare const defaultProps: BurgerProps;
export declare abstract class Burger extends HTMLElement {
    static get observedAttributes(): string[];
    protected abstract get lines(): number;
    protected abstract [render](options: RenderOptions): void;
    private [btn];
    private [props];
    private [updating];
    /**
     * A valid `transition-timing-function` CSS value, for example 'ease-out'.
     * @type {string}
     * @default cubic-bezier(0, 0, 0, 1)
     */
    get easing(): string;
    set easing(easing: string);
    /**
     * The vertical distance between the lines. Small (sm), medium (md) or large (lg).
     * @type {'sm' | 'md' | 'lg'}
     * @default md
     */
    get distance(): 'sm' | 'md' | 'lg';
    set distance(distance: 'sm' | 'md' | 'lg');
    /**
     * The duration of the animation. Can be set to zero if no animation is desired.
     * @type {number}
     * @default 0.4
     */
    get duration(): number;
    set duration(duration: number);
    /**
     * When set to true, the internal <button> element is disabled.
     * @type {boolean}
     * @attr disabled
     * @default false
     */
    get disabled(): boolean;
    set disabled(disabled: boolean);
    /**
     * Accessible label set on the internal <button> element for screen readers.
     * @type {string}
     * @default {hamburger}
     */
    get label(): string;
    set label(label: string);
    /**
     * Set to true when element is pressed.
     * @type {boolean}
     * @attr pressed
     * @default false
     */
    get pressed(): boolean;
    set pressed(pressed: boolean);
    /**
     * Size of the icon. Should be a number between 12 and 48.
     * @type {number}
     * @default 32
     */
    get size(): number;
    set size(size: number);
    constructor();
    connectedCallback(): void;
    attributeChangedCallback(prop: string, oldVal: string, newVal: string): void;
    handleEvent(event: KeyboardEvent | MouseEvent): void;
    focus(): void;
    blur(): void;
    click(): void;
    private [prepare];
    protected [update](): Promise<void>;
}
export {};
//# sourceMappingURL=burger.d.ts.map