import { ReactiveController, ReactiveElement } from 'lit';
/**
 * Adds Invoker Commands API support for interactive custom elements.
 * https://developer.mozilla.org/en-US/docs/Web/API/Invoker_Commands_API
 */
export declare function typeCommand<T extends Command>(): ClassDecorator;
export type Command = ReactiveElement & HTMLElement & {
    command: string;
    commandfor: string | null;
    commandForElement: HTMLElement | null;
    readOnly: boolean;
    /**
     * @deprecated Use `readOnly`. The `readonly` attribute remains supported.
     */
    readonly?: boolean;
    disabled: boolean;
};
export declare class TypeCommandController<T extends Command> implements ReactiveController {
    #private;
    private host;
    constructor(host: T, options?: TypeCommandControllerOptions);
    get target(): HTMLElement | null;
    hostUpdated(): Promise<void>;
    hostDisconnected(): void;
    dispatchCommand(): boolean;
}
export interface TypeCommandControllerOptions {
    trigger?: 'click' | 'manual';
}
