import { Filepath } from '../../../core/types/filepath'; import { default as Compiler } from '../../index'; import { TextEdit } from './applyTextEdits'; export interface DepEndpointRef { schemaName?: string | null; tableName: string; fieldNames?: string[]; } export interface DepSyncEdge { upstream: DepEndpointRef; downstream: DepEndpointRef; } export interface DepSyncOperation { operation: 'create' | 'update' | 'remove'; /** The edge that identifies the target block (table-level: empty fields). */ edge: DepSyncEdge; /** Set to a value to create/update, null to remove, undefined to leave unchanged. */ color?: string | null; /** Set to a value to create/update, null to remove, undefined to leave unchanged. */ note?: string | null; } /** * Synchronizes `Dep` blocks in the DBML source at `filepath`. * Applies create/update/remove operations and returns the rewritten source. */ export declare function syncDep(this: Compiler, filepath: Filepath, operations: DepSyncOperation[]): { newDbml: string; edits: TextEdit[]; }; /** Emit a `Dep` block string for one edge with a `[color]` setting. */ export declare function generateDepBlock(edge: DepSyncEdge, color: string): string;