import type { SagaIterator } from '@redux-saga/types';
import { InternalUserOptions, InternalChannels, ClientEvents } from '../utils/interfaces';
import { BaseSession } from '../BaseSession';
import { SessionChannel } from './interfaces';
import { EventEmitter } from '../utils/EventEmitter';
interface StartSagaOptions {
    session: BaseSession;
    sessionEmitter: EventEmitter<ClientEvents>;
    sessionChannel: SessionChannel;
    userOptions: InternalUserOptions;
}
export declare function sessionSaga({ initSession, sessionEmitter, userOptions, channels, }: {
    initSession: () => BaseSession;
    sessionEmitter: EventEmitter<ClientEvents>;
    userOptions: InternalUserOptions;
    channels: InternalChannels;
}): SagaIterator;
export declare function reauthenticateWorker({ session, token, sessionEmitter, }: {
    session: BaseSession;
    token: string;
    sessionEmitter: EventEmitter<ClientEvents>;
}): Generator<import("@redux-saga/core/effects").CallEffect<void> | import("@redux-saga/core/effects").PutEffect<{
    payload: import("../utils/interfaces").RPCConnectResult;
    type: string;
}>, void, unknown>;
export declare function sessionStatusWatcher(options: StartSagaOptions): SagaIterator;
interface SessionAuthErrorOptions extends StartSagaOptions {
    action: any;
}
export declare function sessionAuthErrorSaga(options: SessionAuthErrorOptions): SagaIterator;
interface RootSagaOptions {
    initSession: () => BaseSession;
    sessionEmitter: EventEmitter<ClientEvents>;
}
declare const _default: (options: RootSagaOptions) => ({ userOptions, channels, }: {
    userOptions: InternalUserOptions;
    channels: InternalChannels;
}) => SagaIterator;
export default _default;
//# sourceMappingURL=rootSaga.d.ts.map