import type { AnyDatasetInstance, DimensionDefinition, MeasureDefinition, MetricHandle, RelationshipDefinition, SemanticFilterDefinition, DatasetLimits, TimeGrain } from './types.js'; export interface DimensionCatalogEntry { type: DimensionDefinition['fieldType']; column?: string; sql?: string; label?: string; description?: string; filterable: boolean; groupable: boolean; } export interface MeasureCatalogEntry { aggregation: MeasureDefinition['aggregation']; field: string; /** Second column for argMax/argMin. */ argField?: string; /** Percentile level in [0, 1]. */ level?: number; sql?: string; label?: string; description?: string; filterCount: number; } export interface FilterCatalogEntry { field: string; label?: string; description?: string; operators: SemanticFilterDefinition['operators']; valueType?: DimensionDefinition['fieldType']; } export interface MetricCatalogEntry { kind: ReturnType['kind']; dataset: string; valueType: 'number'; label?: string; description?: string; dimensions: string[]; measures?: string[]; filters: string[]; grains: string[]; grain?: string; requires?: string[]; } export interface RelationshipCatalogEntry { kind: RelationshipDefinition['kind']; target: string; from: string; to: string; queryable: boolean; fields: string[]; } export interface DatasetCatalog { name: string; source: string; tenantKey?: string; timeKey?: string; dimensions: Record; measures: Record; metrics: Record; filters: Record; relationships: Record; limits?: DatasetLimits; requiresTenant: boolean; supportedGrains: TimeGrain[]; orderableFields: string[]; maxLimit?: number; } export type DatasetCatalogMap = Record; export type DatasetCatalogSource = AnyDatasetInstance & { metrics?: Record; }; /** All queryable relationship field names (`.`) a catalog advertises. */ export declare function getQueryableRelationshipFields(catalog: DatasetCatalog): string[]; export declare function getDatasetCatalog(dataset: DatasetCatalogSource): DatasetCatalog; export declare function getDatasetCatalogs(datasets: Record): DatasetCatalogMap; //# sourceMappingURL=catalog.d.ts.map