import { VisualizationInput } from "@gooddata/typings";
export interface IPreviousPeriodDateDataSetSimple {
    dataSet: VisualizationInput.ObjQualifier | string;
    periodsAgo: number;
}
export interface IMeasureAux<T extends VisualizationInput.IMeasureDefinitionType> {
    measure: {
        definition: T;
        localIdentifier: VisualizationInput.IMeasure["measure"]["localIdentifier"];
        alias: VisualizationInput.IMeasure["measure"]["alias"];
        format: VisualizationInput.IMeasure["measure"]["format"];
        title: VisualizationInput.IMeasure["measure"]["title"];
    };
}
export declare class MeasureBuilderBase<T extends VisualizationInput.IMeasureDefinitionType> implements IMeasureAux<T> {
    private static lastMeasureId;
    measure: IMeasureAux<T>["measure"];
    constructor();
    alias: (alias: string) => this;
    format: (format: string) => this;
    title: (title: string) => this;
    localIdentifier: (localIdentifier: string) => this;
}
export declare class MeasureBuilder extends MeasureBuilderBase<VisualizationInput.IMeasureDefinition> {
    constructor(identifier: string);
    aggregation: (aggregation: import("@gooddata/typings").AFM.SimpleMeasureAggregation) => this;
    ratio: () => this;
    filters: (...filters: VisualizationInput.IMeasureFilter[]) => this;
}
export declare class ArithmeticMeasureBuilder extends MeasureBuilderBase<VisualizationInput.IArithmeticMeasureDefinition> {
    constructor(measureIdentifiers: string[], operator: VisualizationInput.ArithmeticMeasureOperator);
}
export declare class PoPMeasureBuilder extends MeasureBuilderBase<VisualizationInput.IPoPMeasureDefinition> {
    constructor(measureIdentifier: string, popAttribute: string);
}
export declare class PreviousPeriodMeasureBuilder extends MeasureBuilderBase<VisualizationInput.IPreviousPeriodMeasureDefinition> {
    constructor(measureIdentifier: string, dateDataSets: IPreviousPeriodDateDataSetSimple[]);
}
export declare const measure: (identifier: string) => MeasureBuilder;
export declare const arithmeticMeasure: (measureIdentifiers: string[], operator: import("@gooddata/typings").AFM.ArithmeticMeasureOperator) => ArithmeticMeasureBuilder;
export declare const popMeasure: (measureIdentifier: string, popAttribute: string) => PoPMeasureBuilder;
export declare const previousPeriodMeasure: (measureIdentifier: string, dateDataSets?: IPreviousPeriodDateDataSetSimple[]) => PreviousPeriodMeasureBuilder;
