/** * dataset() — creates a typed semantic model over a physical table. * * Relationships are modeled on the dataset. To-one relationships (`belongsTo`, * `hasOne`) are queryable one hop deep as `.` and * execute as LEFT JOINs; `hasMany` relationships remain metadata-only to avoid * fan-out corrupting aggregates. * * @example * ```ts * import { dataset, dimension, measure, belongsTo } from '@hypequery/serve'; * * const Orders = dataset("orders", { * source: "orders", * tenantKey: "tenant_id", * timeKey: "created_at", * dimensions: { * id: dimension.string(), * status: dimension.string({ label: "Order Status" }), * createdAt: dimension.timestamp({ column: "created_at" }), * }, * measures: { * totalRevenue: measure.sum("amount", { label: "Total Revenue" }), * orderCount: measure.count("id"), * }, * relationships: { * customer: belongsTo(() => Customers, { from: "customerId", to: "id" }), * }, * }); * ``` */ import type { DatasetConfig, DatasetInstance, DimensionDefinition, MeasureDefinition, RelationshipDefinition } from './types.js'; export declare function dataset, TMeasures extends Record = Record, TRelationships extends Record = Record>(name: TDatasetName, config: DatasetConfig): DatasetInstance; //# sourceMappingURL=dataset.d.ts.map