import { Provisioning, UnObservablify } from '@rxx/core';
import { Subject, Observable } from 'rxjs';
export declare class Interrupter<S> {
    private provisioning;
    observable: Subject<UnObservablify<S>>;
    private publisher;
    constructor(provisioning: Provisioning<any>);
    toObservable({ disposeWhenUnsubscribe }?: {
        disposeWhenUnsubscribe: boolean;
    }): Observable<UnObservablify<S>>;
    send<T>(type: string, payload?: any): void;
    subscribe(callback: (state: UnObservablify<S>) => void, runInitial?: boolean): () => void;
    dispose(): void;
    wait<T extends string, P, S>(type: string): Promise<{
        type: string;
        payload: any;
    }>;
}
