import { Range, Position } from 'vscode-languageserver';
import type { TextDocument } from 'vscode-languageserver-textdocument';
import { Block } from './block';
import { PrismaSchema } from '../Schema';
export declare function fullDocumentRange(document: TextDocument): Range;
export declare function getCurrentLine(document: TextDocument, line: number): string;
/**
 * Check if the position is at the beginning of a new line in the block,
 * not necessarily the first line of the block.
 */
export declare function isFirstInsideBlock(position: Position, currentLine: string): boolean;
export declare function getWordAtPosition(document: TextDocument, position: Position): string;
export declare function getBlockAtPosition(fileUri: string, line: number, schema: PrismaSchema): Block | undefined;
export declare function getSymbolBeforePosition(document: TextDocument, position: Position): string;
export declare function positionIsAfterFieldAndType(position: Position, document: TextDocument, wordsBeforePosition: string[]): boolean;
export declare function isInsideGivenProperty(currentLineUntrimmed: string, wordsBeforePosition: string[], attributeName: string, position: Position): boolean;
/***
 * @param symbols expects e.g. '()', '[]' or '""'
 */
export declare function isInsideAttribute(currentLineUntrimmed: string, position: Position, symbols: string): boolean;
export declare function isInsideFieldArgument(currentLineUntrimmed: string, position: Position): boolean;
export declare function getValuesInsideSquareBrackets(line: string): string[];
