import { AdminApi, ModelData, NodeStatusResponse, PinApi, LoadOpts, DiagnosticsLogger } from '@ceramicnetwork/common';
import { Model } from '@ceramicnetwork/stream-model';
import { StreamID, CommitID } from '@ceramicnetwork/streamid';
import type { LocalIndexApi, ISyncApi } from '@ceramicnetwork/indexing';
import { ProvidersCache } from './providers-cache.js';
import { IReconApi } from './recon.js';
declare type NodeStatusFn = () => Promise<NodeStatusResponse>;
declare type LoadStreamFn<T> = (streamId: StreamID | CommitID | string, opts?: LoadOpts) => Promise<T>;
export declare const NUMBER_OF_BLOCKS_BEFORE_TX_TO_START_SYNC = 7200;
export declare class LocalAdminApi implements AdminApi {
    #private;
    private readonly logger;
    private readonly indexApi;
    private readonly syncApi;
    private readonly nodeStatusFn;
    private readonly pinApi;
    private readonly providersCache;
    private readonly loadStream;
    private readonly recon;
    constructor(logger: DiagnosticsLogger, indexApi: LocalIndexApi, syncApi: ISyncApi, nodeStatusFn: NodeStatusFn, pinApi: PinApi, providersCache: ProvidersCache, loadStream: LoadStreamFn<Model>, recon: IReconApi);
    nodeStatus(): Promise<NodeStatusResponse>;
    startIndexingModels(modelsIDs: Array<StreamID>): Promise<void>;
    private _getStartBlock;
    startIndexingModelData(modelData: Array<ModelData>): Promise<void>;
    getIndexedModels(): Promise<Array<StreamID>>;
    getIndexedModelData(): Promise<Array<ModelData>>;
    stopIndexingModels(modelsIDs: Array<StreamID>): Promise<void>;
    stopIndexingModelData(modelData: Array<ModelData>): Promise<void>;
    get pin(): PinApi;
}
export {};
//# sourceMappingURL=local-admin-api.d.ts.map