import { type FilterContextItem, type ICatalogAttribute, type ICatalogDateDataset, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type ObjRef } from "@gooddata/sdk-model";
import { type OverlayPositionType } from "@gooddata/sdk-ui-kit";
import type { IAutomationFiltersTab } from "../../../model/store/filtering/dashboardFilterSelectors.js";
export interface IAutomationFiltersProps {
    id?: string;
    filters: FilterContextItem[] | undefined;
    attributeConfigs: IDashboardAttributeFilterConfig[];
    dateConfigs: IDashboardDateFilterConfigItem[];
    attributes: ICatalogAttribute[];
    dateDatasets: ICatalogDateDataset[];
    handleChangeFilter: (filter: FilterContextItem | undefined) => void;
    handleDeleteFilter: (filter: FilterContextItem) => void;
    handleAddFilter: (displayForm: ObjRef, attributes: ICatalogAttribute[], dateDatasets: ICatalogDateDataset[]) => void;
    storeFilters: boolean;
    handleStoreFiltersChange: (value: boolean) => void;
    isDashboardAutomation?: boolean;
    areFiltersMissing?: boolean;
}
export interface IAutomationFiltersSelectProps {
    availableFilters: FilterContextItem[] | undefined;
    selectedFilters: FilterContextItem[] | undefined;
    onFiltersChange: (filters: FilterContextItem[], enableNewScheduledExport: boolean) => void;
    storeFilters: boolean;
    onStoreFiltersChange: (value: boolean, filters?: FilterContextItem[], filtersByTab?: Record<string, FilterContextItem[]>) => void;
    isDashboardAutomation?: boolean;
    areFiltersMissing?: boolean;
    overlayPositionType?: OverlayPositionType;
    hideTitle?: boolean;
    showAllFilters?: boolean;
    disableDateFilters?: boolean;
    /**
     * Filters structured per tab.
     * When provided (with multiple tabs), filters will be rendered grouped by tab sections.
     * When undefined or single tab, the flat filter list is used instead.
     */
    filtersByTab?: IAutomationFiltersTab[];
    /**
     * Edited filters per tab state.
     * Used together with filtersByTab to track user edits per tab.
     */
    editedFiltersByTab?: Record<string, FilterContextItem[]>;
    /**
     * Callback to update filters for a specific tab.
     * Called when user adds, changes, or removes a filter in a tab section.
     */
    onFiltersByTabChange?: (filtersByTab: Record<string, FilterContextItem[]>) => void;
}
export declare function AutomationFiltersSelect({ availableFilters, selectedFilters, onFiltersChange, isDashboardAutomation, storeFilters, onStoreFiltersChange, areFiltersMissing, overlayPositionType, hideTitle, showAllFilters, disableDateFilters, filtersByTab, editedFiltersByTab, onFiltersByTabChange }: IAutomationFiltersSelectProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=AutomationFiltersSelect.d.ts.map