import { Position, TextDocuments } from 'vscode-languageserver';
import { TextDocument } from 'vscode-languageserver-textdocument';
export type Line = {
    readonly document: SchemaDocument;
    readonly lineIndex: number;
    readonly text: string;
    readonly untrimmedText: string;
};
export declare class SchemaDocument {
    readonly textDocument: TextDocument;
    readonly lines: Line[];
    constructor(textDocument: TextDocument);
    get uri(): string;
    get content(): string;
    positionAt(offset: number): Position;
    getLineContent(lineIndex: number): string;
}
type FindRegexpResult = {
    match: RegExpExecArray;
    documentUri: string;
};
export declare class PrismaSchema {
    readonly documents: SchemaDocument[];
    static singleFile(textDocument: TextDocument): PrismaSchema;
    static load(currentDocument: TextDocument, allDocuments: TextDocuments<TextDocument>): Promise<PrismaSchema>;
    constructor(documents: SchemaDocument[]);
    iterLines(): Generator<Line, void, void>;
    linesAsArray(): Line[];
    findDocByUri(fileUri: string): SchemaDocument | undefined;
    findWithRegex(regexp: RegExp): FindRegexpResult | undefined;
    /**
     *
     * @returns array of (uri, content) tuples. Expected input for prisma-schema-wasm
     */
    toTuples(): Array<[string, string]>;
    toJSON(): [string, string][];
}
export {};
