import { type FilterContextItem, type ICatalogAttribute, type ICatalogDateDataset, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IdentifierRef, type ObjRef } from "@gooddata/sdk-model";
import { type OverlayPositionType } from "@gooddata/sdk-ui-kit";
import type { IAutomationFiltersTab } from "../../../../../model/store/filtering/types.js";
import { type IAutomationParameter } from "../automationParameters.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;
    /**
     * Parameter chips to render. Provided only when the `enableParameters` feature is on.
     */
    parameters?: IAutomationParameter[];
    /**
     * Workspace parameters addable via the "+" menu (catalog minus the selected set).
     */
    availableParameters?: IAutomationParameter[];
    /**
     * Called when a parameter is added from the "+" menu.
     */
    onParameterAdd?: (ref: IdentifierRef) => void;
    /**
     * Called when an `active` parameter chip's value is edited.
     */
    onParameterChange?: (ref: IdentifierRef, value: number) => void;
    /**
     * Called when an `active` parameter chip is removed.
     */
    onParameterDelete?: (ref: IdentifierRef) => void;
    /**
     * Parameter chips per tab. Used in tab-rendering mode (multi-tab dashboard schedules).
     */
    parametersByTab?: Record<string, IAutomationParameter[]>;
    /**
     * Addable workspace parameters per tab. Used in tab-rendering mode.
     */
    availableParametersByTab?: Record<string, IAutomationParameter[]>;
    /**
     * Called when a parameter is added from a tab section's "+" menu.
     */
    onParameterAddByTab?: (tabId: string, ref: IdentifierRef) => void;
    /**
     * Called when an `active` parameter chip's value is edited in a tab section.
     */
    onParameterChangeByTab?: (tabId: string, ref: IdentifierRef, value: number) => void;
    /**
     * Called when an `active` parameter chip is removed in a tab section.
     */
    onParameterDeleteByTab?: (tabId: string, ref: IdentifierRef) => void;
    /**
     * When the `enableParameters` feature is on, the store-filters tooltip mentions parameter values too.
     */
    parametersEnabled?: boolean;
}
export declare function AutomationFiltersSelect({ availableFilters, selectedFilters, onFiltersChange, isDashboardAutomation, storeFilters, onStoreFiltersChange, areFiltersMissing, overlayPositionType, hideTitle, showAllFilters, disableDateFilters, filtersByTab, editedFiltersByTab, onFiltersByTabChange, parameters, availableParameters, onParameterAdd, onParameterChange, onParameterDelete, parametersByTab, availableParametersByTab, onParameterAddByTab, onParameterChangeByTab, onParameterDeleteByTab, parametersEnabled }: IAutomationFiltersSelectProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=AutomationFiltersSelect.d.ts.map