import { LogSyncer } from './log-syncer.js';
import { TipFetcher } from './tip-fetcher.js';
import { StateManipulator } from './state-manipulator.js';
import { AnchorTimestampExtractor } from './anchor-timestamp-extractor.js';
import { DiagnosticsLogger, StreamState } from '@ceramicnetwork/common';
import { CommitID, StreamID } from '@ceramicnetwork/streamid';
import { Observable } from 'rxjs';
import { CID } from 'multiformats/cid';
export declare class StreamLoader {
    private readonly logger;
    private readonly tipFetcher;
    private readonly logSyncer;
    private readonly anchorTimestampExtractor;
    private readonly stateManipulator;
    constructor(logger: DiagnosticsLogger, tipFetcher: TipFetcher, logSyncer: LogSyncer, anchorTimestampExtractor: AnchorTimestampExtractor, stateManipulator: StateManipulator);
    _loadStateFromTip(streamID: StreamID, tip: CID, allowSyncErrors: boolean, opts?: {
        throwOnInvalidCommit: boolean;
    }): Promise<StreamState | null>;
    _applyTips(streamID: StreamID, tipSource$: Observable<CID>): Promise<StreamState>;
    loadStream(streamID: StreamID, syncTimeoutSecs: number): Promise<StreamState>;
    syncStream(state: StreamState, syncTimeoutSecs: number): Promise<StreamState>;
    resetStateToCommit(initialState: StreamState, commitId: CommitID): Promise<StreamState>;
    stateAtCommit(commitId: CommitID): Promise<StreamState>;
    loadGenesisState(streamID: StreamID): Promise<StreamState>;
    resyncStream(streamID: StreamID, knownTip: CID, syncTimeoutSecs: number): Promise<StreamState>;
}
//# sourceMappingURL=stream-loader.d.ts.map