import { Position, Range } from 'vscode-languageserver'; import { BlockType } from '../types'; import { PrismaSchema, SchemaDocument } from '../Schema'; export interface Block { type: BlockType; range: Range; nameRange: Range; name: string; definingDocument: SchemaDocument; } export declare function getBlocks(schema: PrismaSchema): Generator; export declare function getDatamodelBlock(blockName: string, schema: PrismaSchema): Block | void; export declare function getFieldsFromCurrentBlock(schema: PrismaSchema, block: Block, position?: Position): string[]; export type FoundLocation = { document: SchemaDocument; lineIndex: number; }; export type RenameFieldLocation = { fieldName: string; locations: FoundLocation[]; }; export declare function getFieldTypesFromCurrentBlock(schema: PrismaSchema, block: Block, position?: Position): { fieldTypes: Map; fieldTypeNames: Record; }; export declare function getCompositeTypeFieldsRecursively(schema: PrismaSchema, compositeTypeFieldNames: string[], fieldTypesFromBlock: { fieldTypes: Map; fieldTypeNames: Record; }): string[]; export declare const getDocumentationForBlock: (block: Block) => string[];