import type { ExprNode } from '@uwdata/mosaic-sql';
import type { MosaicClient } from '../MosaicClient.js';
export interface PreAggColumnsResult {
    dims: string[];
    groupby: Record<string, ExprNode>;
    preagg: Record<string, ExprNode>;
    output: Record<string, ExprNode>;
    having: ExprNode[];
    qualify: ExprNode[];
}
/**
 * Determine pre-aggregation columns for a given Mosaic client.
 * @param client The Mosaic client.
 * @returns An object with necessary column data to generate pre-aggregated
 *  columns, or null if the client can't be optimized or the client query
 *  contains an invalid or unsupported expression.
 */
export declare function preaggColumns(client: MosaicClient): PreAggColumnsResult | null;
//# sourceMappingURL=preagg-columns.d.ts.map