import type { State } from '../models/FlowMetadata';
export type UserAction = {
    type: 'PAUSE';
} | {
    type: 'RESUME';
    userInstruction?: string;
} | {
    type: 'END';
};
export type ControlPanelDataUpdate = {
    state: State;
    headline?: string;
};
export interface ControlPanel {
    /** Cheap, idempotent render update. */
    update(data: ControlPanelDataUpdate): void;
    /** Get and clear the latest user action. */
    popLatestUserAction(): UserAction | null;
    /** Close and dispose the panel. */
    close(): void;
}
export type ControlPanelFactory = (flowId: string) => Promise<ControlPanel>;
export declare class NoOpControlPanel implements ControlPanel {
    update(_data: ControlPanelDataUpdate): void;
    popLatestUserAction(): UserAction | null;
    close(): void;
}
export declare const NoOpControlPanelFactory: ControlPanelFactory;
//# sourceMappingURL=ControlPanel.d.ts.map