import { ReactiveController, ReactiveElement } from 'lit';
export declare type Triggerable = ReactiveElement & {
    trigger?: HTMLElement;
};
/**
 * The TriggerController will track the last known interacted element
 * when the host component was created or shown. This is used for when a component
 * needs to know the element that "triggered" the interaction.
 *
 * Examples include, popover types, closable types and draggable types.
 */
export declare function triggerable<T extends Triggerable>(config?: {
    focus: boolean;
}): ClassDecorator;
export declare class TriggerController<T extends Triggerable> implements ReactiveController {
    private host;
    private config;
    private observer;
    constructor(host: T, config?: {
        focus: boolean;
    });
    private activeElement;
    private _current;
    get current(): HTMLElement;
    private _prev;
    get prev(): HTMLElement;
    hostConnected(): Promise<void>;
    hostUpdate(): void;
    hostDisconnected(): void;
    private focusCurrent;
}
