import { MatrixClient } from "matrix-js-sdk/src/matrix";
import { EventEmitter } from "events";
import { ActionPayload } from "../dispatcher/payloads";
import { IDestroyable } from "../utils/IDestroyable";
import { MatrixDispatcher } from "../dispatcher/dispatcher";
export declare abstract class ReadyWatchingStore extends EventEmitter implements IDestroyable {
    protected readonly dispatcher: MatrixDispatcher;
    protected matrixClient: MatrixClient | null;
    private dispatcherRef;
    constructor(dispatcher: MatrixDispatcher);
    start(): Promise<void>;
    get mxClient(): MatrixClient | null;
    useUnitTestClient(cli: MatrixClient): void;
    destroy(): void;
    protected onReady(): Promise<void>;
    protected onNotReady(): Promise<void>;
    protected onDispatcherAction(payload: ActionPayload): void;
    private onAction;
}
