import { type DashboardAttributeFilterItem, type FilterContextItem, type IDashboardDateFilter, type IDashboardFilterGroup, type IDashboardMeasureValueFilter, type ObjRef } from "@gooddata/sdk-model";
import { type DashboardFilterSelectionType } from "../filterSelectionTypes.js";
/**
 * @internal
 */
export type FilterBarFilterPlaceholder = {
    type: "filterPlaceholder";
    filterIndex: number;
    displayForm?: ObjRef;
};
/**
 * @internal
 */
export declare function isFilterBarFilterPlaceholder(object: any): object is FilterBarFilterPlaceholder;
/**
 * @internal
 */
export type FilterBarAttributeFilterIndexed = {
    filter: DashboardAttributeFilterItem;
    filterIndex: number;
    workingFilter?: DashboardAttributeFilterItem;
};
/**
 * @internal
 */
export type FilterBarAttributeItem = FilterBarFilterPlaceholder | FilterBarAttributeFilterIndexed;
export declare function isFilterBarAttributeFilter(object: any): object is FilterBarAttributeFilterIndexed;
/**
 * @internal
 */
export type FilterBarAttributeItems = FilterBarAttributeItem[];
/**
 * @internal
 */
export type FilterBarDateFilterIndexed = {
    filter: IDashboardDateFilter;
    filterIndex: number;
    workingFilter?: IDashboardDateFilter;
};
/**
 * @internal
 */
export declare function isFilterBarDateFilterWithDimension(object: FilterBarItem): object is FilterBarDateFilterIndexed;
/**
 * @internal
 */
export type FilterBarMeasureValueFilterIndexed = {
    filter: IDashboardMeasureValueFilter;
    filterIndex: number;
};
/**
 * @internal
 */
export declare function isFilterBarMeasureValueFilter(object: FilterBarItem): object is FilterBarMeasureValueFilterIndexed;
/**
 * @alpha
 */
export interface IFilterBarFilterGroupItem {
    filterIndex: number;
    groupConfig: IDashboardFilterGroup;
    filters: FilterBarItem[];
}
/**
 * @internal
 */
export declare function isFilterBarFilterGroupItem(object?: FilterBarItem): object is IFilterBarFilterGroupItem;
/**
 * @internal
 */
export type FilterBarItem = FilterBarFilterPlaceholder | FilterBarAttributeFilterIndexed | FilterBarDateFilterIndexed | FilterBarMeasureValueFilterIndexed | IFilterBarFilterGroupItem;
/**
 * @internal
 */
export type FilterBarDraggableItems = FilterBarItem[];
/**
 * @internal
 */
export declare function useFiltersWithAddedPlaceholder(filters: FilterContextItem[], workingFilters?: FilterContextItem[]): [
    {
        commonDateFilter: IDashboardDateFilter;
        commonWorkingDateFilter?: IDashboardDateFilter;
        draggableFiltersWithPlaceholder: FilterBarDraggableItems;
        draggableFiltersCount: number;
        autoOpenFilter: ObjRef | undefined;
    },
    {
        addDraggableFilterPlaceholder: (index: number) => void;
        selectDraggableFilter: (ref: ObjRef, selectionType?: DashboardFilterSelectionType) => void;
        closeAttributeSelection: () => void;
        onCloseAttributeFilter: () => void;
    }
];
//# sourceMappingURL=useFiltersWithAddedPlaceholder.d.ts.map