import type { CardId, CardType, DatabaseId, DatasetColumn, TableId } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { AggregationClause, AggregationClauseDisplayInfo, AggregationOperator, AggregationOperatorDisplayInfo, BreakoutClause, BreakoutClauseDisplayInfo, Bucket, BucketDisplayInfo, CardDisplayInfo, CardMetadata, Clause, ClauseDisplayInfo, ColumnDisplayInfo, ColumnExtraction, ColumnExtractionInfo, ColumnGroup, ColumnGroupDisplayInfo, ColumnMetadata, DependentItem, DrillThru, DrillThruDisplayInfo, FilterOperator, FilterOperatorDisplayInfo, JoinConditionOperator, JoinConditionOperatorDisplayInfo, JoinStrategy, JoinStrategyDisplayInfo, MetadataProvider, MetricDisplayInfo, MetricMetadata, OrderByClause, OrderByClauseDisplayInfo, Query, QueryDisplayInfo, SegmentDisplayInfo, SegmentMetadata, TableDisplayInfo, TableMetadata } from "./types";
import type Field from "./v1/metadata/Field";
import type Metadata from "./v1/metadata/Metadata";
export declare function metadataProvider(databaseId: DatabaseId | null, metadata: Metadata): MetadataProvider;
/**
 * @deprecated use displayInfo instead
 */
export declare function displayName(query: Query, clause: Clause): string;
declare function DisplayInfoFn(query: Query, stageIndex: number, columnMetadata: ColumnMetadata): ColumnDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, columnGroup: ColumnGroup): ColumnGroupDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, cardMetadata: CardMetadata): CardDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, tableMetadata: TableMetadata): TableDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, tableLike: CardMetadata | TableMetadata): CardDisplayInfo | TableDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, aggregationClause: AggregationClause): AggregationClauseDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, aggregationOperator: AggregationOperator): AggregationOperatorDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, breakoutClause: BreakoutClause): BreakoutClauseDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, orderByClause: OrderByClause): OrderByClauseDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, clause: Clause): ClauseDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, bucket: Bucket): BucketDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, metric: MetricMetadata): MetricDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, joinStrategy: JoinStrategy): JoinStrategyDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, joinConditionOperator: JoinConditionOperator): JoinConditionOperatorDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, drillThru: DrillThru): DrillThruDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, filterOperator: FilterOperator): FilterOperatorDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, segment: SegmentMetadata): SegmentDisplayInfo;
declare function DisplayInfoFn(query: Query, stageIndex: number, extraction: ColumnExtraction): ColumnExtractionInfo;
export declare const displayInfo: typeof DisplayInfoFn;
export declare function groupColumns(columns: ColumnMetadata[]): ColumnGroup[];
export declare function getColumnsFromColumnGroup(group: ColumnGroup): ColumnMetadata[];
export declare function describeTemporalUnit(unit?: string | null, n?: number): string;
export declare function tableOrCardMetadata(queryOrMetadataProvider: Query | MetadataProvider, tableID: TableId): CardMetadata | TableMetadata;
export declare function visibleColumns(query: Query, stageIndex: number): ColumnMetadata[];
export declare function returnedColumns(query: Query, stageIndex: number): ColumnMetadata[];
export declare function fromLegacyColumn(query: Query, stageIndex: number, columnOrField: DatasetColumn | Field): ColumnMetadata;
export declare function queryDisplayInfo(query: Query): QueryDisplayInfo;
export declare function dependentMetadata(query: Query, cardId: CardId | undefined, cardType: CardType): DependentItem[];
export declare function tableOrCardDependentMetadata(metadataProvider: MetadataProvider, tableId: TableId): DependentItem[];
export declare function columnKey(column: ColumnMetadata): string;
export {};
