import type { Table } from '../types/explore';
import type { CompiledDimension, CompiledMetric, Dimension, Metric } from '../types/field';
type TableWithName = Pick<Table, 'name' | 'originalName'>;
type TableWithDimensions<TDimension extends Dimension | CompiledDimension> = TableWithName & {
    dimensions: Record<string, TDimension>;
};
type TableWithMetrics<TMetric extends Metric | CompiledMetric> = TableWithName & {
    metrics: Record<string, TMetric>;
};
export declare const getReferencedTable: <TTable extends TableWithName>(refTable: string, tables: Record<string, TTable>) => TTable | undefined;
export declare const getReferencedDimension: <TTable extends TableWithDimensions<TDimension>, TDimension extends Dimension | CompiledDimension>(refTable: string, refName: string, tables: Record<string, TTable>) => TDimension | undefined;
export declare const getReferencedMetric: <TTable extends TableWithMetrics<TMetric>, TMetric extends Metric | CompiledMetric>(refTable: string, refName: string, tables: Record<string, TTable>) => TMetric | undefined;
export declare const getReferencedDimensionCaseInsensitive: <TTable extends TableWithDimensions<TDimension>, TDimension extends Dimension | CompiledDimension>(refTable: string, refName: string, tables: Record<string, TTable>) => TDimension | undefined;
export {};
//# sourceMappingURL=referenceLookup.d.ts.map