/// <reference types="node" />
import EventEmitter from 'events';
import { LRUCache as LRU } from 'lru-cache';
import { TextDocument } from 'vscode-languageserver-textdocument';
import { IContext, IDocumentManager } from '../types';
import { ActiveDocument } from './document-manager/active-document';
export declare class DocumentManager extends EventEmitter implements IDocumentManager {
    readonly documents: LRU<string, ActiveDocument>;
    private _context;
    private _documentScheduler;
    private _pendingFiles;
    get context(): IContext;
    setContext(context: IContext): this;
    constructor(processingTimeout?: number);
    private initEvents;
    private processAndPersist;
    private process;
    schedule(textDocument: TextDocument): boolean;
    private open;
    getOrOpen(target: string): Promise<ActiveDocument | null>;
    get(textDocument: TextDocument): ActiveDocument;
    getLatest(document: TextDocument, timeout?: number): Promise<ActiveDocument>;
    clear(document: TextDocument): void;
}
