/** * Datasource content generator * Converts DatasourceDefinition to native .datasource file format */ import type { DatasourceDefinition } from "../schema/datasource.js"; /** * Generated datasource content */ export interface GeneratedDatasource { /** Datasource name */ name: string; /** The generated .datasource file content */ content: string; } /** * Generate a .datasource file content from a DatasourceDefinition * * @param datasource - The datasource definition * @returns Generated datasource content * * @example * ```ts * const events = defineDatasource('events', { * description: 'User events', * schema: { * timestamp: t.dateTime(), * user_id: t.string(), * event: t.string(), * }, * engine: engine.mergeTree({ * sortingKey: ['user_id', 'timestamp'], * }), * }); * * const { content } = generateDatasource(events); * // Returns: * // DESCRIPTION > * // User events * // * // SCHEMA > * // timestamp DateTime, * // user_id String, * // event String * // * // ENGINE "MergeTree" * // ENGINE_SORTING_KEY "user_id, timestamp" * ``` */ export declare function generateDatasource(datasource: DatasourceDefinition): GeneratedDatasource; /** * Generate .datasource files for all datasources in a project * * @param datasources - Record of datasource definitions * @returns Array of generated datasource content */ export declare function generateAllDatasources(datasources: Record): GeneratedDatasource[]; //# sourceMappingURL=datasource.d.ts.map