/// <reference types="node" />
import { IActivatable, IPersistenceLoadOptions, IPersistenceLoadResult, IPersistenceQueryOptions, IPersistenceQueryResult, IPersistenceService, IPersistenceStoreBatchOptions, IPersistenceStoreBatchResult, IPersistenceStoreOptions, ITypedPortal } from '@darlean/base';
import { FsPersistenceActor } from './syncactor.impl';
import { BufferOf, IDeSer } from '@darlean/utils';
export interface IFsPersistenceServiceOptions {
    shardCount: number;
    nodes: string[];
}
export declare class FsPersistenceService implements IPersistenceService, IActivatable {
    private deser;
    private shards;
    constructor(options: IFsPersistenceServiceOptions, actorPortal: ITypedPortal<FsPersistenceActor>, deser: IDeSer);
    activate(): Promise<void>;
    store(options: IPersistenceStoreOptions<Buffer>): Promise<void>;
    storeBatch(options: IPersistenceStoreBatchOptions<Buffer>): Promise<IPersistenceStoreBatchResult>;
    storeBatchBuffer(options: BufferOf<IPersistenceStoreBatchOptions<Buffer>>): Promise<BufferOf<IPersistenceStoreBatchResult>>;
    load(options: IPersistenceLoadOptions): Promise<IPersistenceLoadResult<Buffer>>;
    query(options: IPersistenceQueryOptions): Promise<IPersistenceQueryResult<Buffer>>;
    queryBuffer(options: IPersistenceQueryOptions): Promise<BufferOf<IPersistenceQueryResult<Buffer>>>;
    protected storeBatchImpl(options: IPersistenceStoreBatchOptions<Buffer>): Promise<IPersistenceStoreBatchResult>;
    protected deriveShardIdx(partitionKey: string[]): number;
}
