import { Event } from "survey-core";
export type SummaryFilter = {
    field: string;
    type: string;
    value: any;
};
export type GetDataUsingCallbackFn = (params: {
    visualizer: any;
    filter?: Array<SummaryFilter>;
    callback?: (response: {
        data: Array<Object>;
        error?: any;
    }) => void;
}) => void;
export type GetDataUsingPromiseFn = (params: {
    visualizer: any;
    filter?: Array<SummaryFilter>;
}) => Promise<Array<Object>>;
export type GetDataFn = GetDataUsingCallbackFn | GetDataUsingPromiseFn;
export declare class DataProvider {
    private _data;
    static seriesMarkerKey: string;
    private _filteredData;
    protected filterValues: {
        [index: string]: any;
    };
    constructor(_data?: Array<any> | GetDataFn);
    get data(): Array<any>;
    set data(data: Array<any> | GetDataFn);
    get dataFn(): GetDataFn;
    get filteredData(): Array<any>;
    /**
     * Sets filter by question name and value.
     */
    setFilter(questionName: string, selectedValue: any): void;
    /**
     * Resets filter.
     */
    resetFilter(): void;
    /**
     * Fires when data has been changed.
     */
    onFilterChanged: Event<(sender: DataProvider, options: any) => any, DataProvider, any>;
    raiseFilterChanged(questionName?: string, selectedValue?: any): void;
    /**
     * Fires when data has been changed.
     */
    onDataChanged: Event<(sender: DataProvider, options: any) => any, DataProvider, any>;
    raiseDataChanged(questionName?: string): void;
    getFilters(): SummaryFilter[];
    fixDropdownData(dataNames: string[]): void;
}
