export interface ToastAction {
    /** The key that triggers the action (e.g. `'\r'` for Enter). */
    key: string;
    /** Short label shown inline in the header (e.g. `'⏎ Apply & verify'`). */
    label: string;
    /** Called when InkRoot sees the matching key while this toast is active. */
    handler: () => void;
}
export interface Toast {
    message: string;
    severity: 'ok' | 'warn' | 'err';
    ttl: number;
    group?: string;
    action?: ToastAction;
}
type Listener = () => void;
export interface ToastStore {
    push(t: Toast): void;
    current(): Toast | null;
    queue(): Toast[];
    subscribe(fn: Listener): () => void;
    /** Immediately remove the currently active toast (e.g. after action fires). */
    dismiss(): void;
    /**
     * Attach (or replace) the action on the currently active toast without
     * changing its message, severity, or TTL. No-op when queue is empty.
     */
    setCurrentAction(action: ToastAction): void;
}
export declare function createToastStore(): ToastStore;
export {};
//# sourceMappingURL=toast-store.d.ts.map