export type LedgerAction = {
    type: string;
    payload: any;
    plugin?: {
        name: string;
    };
};
export declare class LedgerWriter {
    private actionCount;
    private serverUrl;
    private ledgerId;
    private blockVersionId?;
    private configurationId?;
    private actionsToWatch;
    private actionsBeingWatched;
    private cacheId?;
    private headers?;
    private streamStarted;
    private streamEnded;
    private writeQueue;
    private stream;
    private streamPipeline?;
    private createTypeActions;
    private invalidations;
    private skipInvalidations;
    constructor(input: {
        serverUrl: string;
        ledgerId: string;
        actionsToWatch: string[];
    });
    private setSkipInvalidations;
    private addInvalidation;
    private addCreateTypeAction;
    private clearCreateTypeActions;
    private clearInvalidations;
    private generateSchemaHash;
    private watchActions;
    openStream(input: {
        blockVersionId: string;
        cacheId: string;
        directory: string;
        platformId?: string;
        headers?: Record<string, string>;
        skipInvalidations?: boolean;
    }): Promise<void>;
    finalizeStream(): Promise<{
        actionCount: number;
        configurationId: string | undefined;
        invalidations: {
            id: string;
            typename: string;
        }[] | null;
        schemaHash: string;
    }>;
    private sharedActionError;
    private writeAction;
    private makeStreamPipeline;
    private makeHttpStream;
    private waitForQueueIdle;
    private writeStartSequenceAction;
    private writeEndSequenceAction;
    private handleQueuedAction;
    private logLedgerAction;
}
//# sourceMappingURL=ledger-writer.d.ts.map