///
///
import { InMemoryStore } from 'lincd-storage/shapes/InMemoryStore';
import { NamedNode, Node, Quad } from 'lincd/models';
import { QuadSet } from 'lincd/collections/QuadSet';
import fs from 'fs';
import { CoreMap } from 'lincd/collections/CoreMap';
import { QuadArray } from 'lincd/collections/QuadArray';
export interface N3FileStoreConfig {
silentStartup?: boolean;
}
export declare class N3FileStore extends InMemoryStore {
static targetClass: NamedNode;
private storingPromise;
private waitingToStore;
private lastBroadcastTime;
private static MINIMUM_STORE_DELAY_MILISEC_DEV;
private static MINIMUM_STORE_DELAY_MILISEC;
private static QUADS_CREADED_CMD;
private static QUADS_REMOVED_CMD;
private static STORING_CMD;
private static SET_TIMEOUT_CMD;
private prefixes;
lag: number;
cpuLoad: number;
pendingBatch: any[];
retryTimer: NodeJS.Timeout;
private addedQuadsQueue;
private removedQuadsQueue;
private quadProcessingTimer;
private static QUEUE_PROCESS_INTERVAL_MS;
static LAG_THRESHOLD_MS: number;
static CPU_THRESHOLD: number;
protected config: Config;
private tmpWriteIndex;
private static MAX_BROADCAST_TIME;
constructor(nodeOrLabel: string | Node, config?: Config);
onInit(): Promise;
get isWorker(): boolean;
unlockAtStartup(): Promise;
get folder(): string;
get path(): string;
getTemporaryPath(): string;
ensurePathExists(): Promise;
getReadStream(): Promise;
getWriteStream(writePath: string): fs.WriteStream;
promiseCompleted(): Promise;
lockFile(): Promise;
onContentsUpdated(): Promise;
/**
* writes the contents of the store to the permanent stoage
* @param writeStream
* @protected
*/
protected writeContents(): Promise;
/**
* adds all quads in this filestore to the write stream
* @param writeStream
* @protected
*/
protected writeContentsToStream(writeStream: any): any;
protected _deleteFromContents(quads: QuadArray | QuadSet): QuadArray | QuadSet;
protected _addToContents(quads: QuadSet | QuadArray): QuadSet | QuadArray;
private scheduleQueueProcessing;
private processQuadQueues;
quadsToString(quads: any, callback: any): void;
broadCast(cmd: any, data: any): void;
private ignoreOwnMessage;
onMessageFromPrimary(msg: any): Promise;
handleBatch(msg: any): void;
processBatch(msg: any): Promise;
retryPendingBatch(): void;
processSingleMessage(msg: any): Promise;
parseQuadString(quadString: any, preventNewQuads?: boolean): Promise;
setURIs(nodeToCurrentUriMap: CoreMap): Promise<[string, string][]>;
/**
* Reads the contents from a N3 file and loads it into a in-memory QuadSet in this store
*/
loadContents(): Promise;
protected getMinStoreDelay(): number;
log(...messages: string[]): void;
error(...messages: string[]): void;
warn(...messages: string[]): void;
}