import { Dimension } from './dimension';
import { DisplayField } from './display_field';
import { Variable } from './variable';
type VariablesMap = Record<string, Omit<Variable, 'key' | 'clone'>>;
export declare class CompileOutput {
    output: string;
    success: boolean;
    variables: VariablesMap;
    fields: DisplayField[];
    groupBy?: Dimension[] | undefined;
    aggregate?: DisplayField[] | undefined;
    constructor(output: string, success?: boolean, variables?: VariablesMap, fields?: DisplayField[], groupBy?: Dimension[] | undefined, aggregate?: DisplayField[] | undefined);
    static success(output: string): CompileOutput;
    static error(error: string): CompileOutput;
    withVariables(variables: Variable[]): this;
    withFields(fields: DisplayField[]): this;
    withAggregationContext(groupBy?: Dimension[], aggregate?: DisplayField[]): this;
}
export {};
