export interface MixedSourceSqlPlan { datasetId?: string; datasetName?: string; localDataset: string; localAlias: string; localKey: string; warehouseKey: string; warehouseExpression: string; warehouseSql: string; warehouseRelations?: string[]; } export interface MixedSourceDatasetCandidate { id: string; name: string; alias: string; columns: Array<{ name: string; flags?: string[]; }>; } export interface MixedSourceSchemaTable { relation: string; columns: Array<{ name: string; }>; source?: string; } /** * Resolve an explicitly named notebook dataset without turning general customer * language into a file guess. The singular/plural allowance is intentionally * limited to names ending in csv/dataset so `customer_csv` can safely match the * registered `customers_csv` alias. */ export declare function findMentionedNotebookDataset>(question: string, datasets: T[]): T | undefined; /** Build the two-engine notebook handoff once the SQL fallback has authored the * warehouse extraction. The SQL remains warehouse-only; the returned keys are * used by the UI to stage and create the local join cell after user confirmation. */ export declare function planMixedSourceNotebookSql(sql: string, dataset: MixedSourceDatasetCandidate, schemaTables: MixedSourceSchemaTable[]): MixedSourceSqlPlan | null; /** * Deterministic last-mile fallback for an explicitly named warehouse entity. * It is used only after certified and semantic coverage have missed. Selecting * the whole validated row keeps requested business detail columns without * inventing column names, and the staging endpoint applies the hard row limit. */ export declare function buildMixedSourceWarehouseFallbackSql(question: string, dataset: MixedSourceDatasetCandidate, schemaTables: MixedSourceSchemaTable[]): string | undefined; /** * Extract the common OSS notebook pattern where a warehouse query directly * joins one registered local dataset. The result is deliberately conservative: * ambiguous joins return null so the user is asked instead of receiving unsafe SQL. */ export declare function planMixedSourceSql(sql: string, datasetAliases: string[]): MixedSourceSqlPlan | null; //# sourceMappingURL=mixed-source-sql.d.ts.map