import { LitElement } from 'lit';
import { type LastProps } from '../../../../surface-block/managers/edit-session.js';
import type { EdgelessPageBlockComponent } from '../../edgeless-page-block.js';
import { type MenuPopper } from './common/create-popper.js';
declare const EdgelessToolButton_base: typeof LitElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare class EdgelessToolButton<Menu extends LitElement = LitElement, Type extends keyof LastProps = 'shape', States extends readonly (keyof LastProps[Type])[] = []> extends EdgelessToolButton_base {
    edgeless: EdgelessPageBlockComponent;
    active: boolean;
    protected _type: Type;
    protected _states: States;
    protected _menu: MenuPopper<Menu> | null;
    protected _disposeMenu(): void;
    protected updateMenu(): void;
    protected get surface(): import("../../../../index.js").SurfaceBlockComponent;
    protected get service(): import("../../../../index.js").SurfaceService;
    connectedCallback(): void;
    protected initLastPropsSlot(): void;
    disconnectedCallback(): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'edgeless-tool-button': EdgelessToolButton;
    }
}
export {};
//# sourceMappingURL=edgeless-toolbar-button.d.ts.map