import { type ReactNode } from "react";
import { type DashboardAttributeFilterItem, type IAttributeElement, type IAttributeMetadataObject, type IAttributeOrMeasure, type ObjRef } from "@gooddata/sdk-model";
import { useDependentDateFiltersConfiguration } from "./dashboardDropdownBody/configuration/hooks/useDependentDateFiltersConfiguration.js";
import { useDisplayFormConfiguration } from "./dashboardDropdownBody/configuration/hooks/useDisplayFormConfiguration.js";
import { useLimitingItemsConfiguration } from "./dashboardDropdownBody/configuration/hooks/useLimitingItemsConfiguration.js";
import { useModeConfiguration } from "./dashboardDropdownBody/configuration/hooks/useModeConfiguration.js";
import { useParentsConfiguration } from "./dashboardDropdownBody/configuration/hooks/useParentsConfiguration.js";
import { useSelectionModeConfiguration } from "./dashboardDropdownBody/configuration/hooks/useSelectionModeConfiguration.js";
import { useSelectionTypeConfiguration } from "./dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.js";
import { useTitleConfiguration } from "./dashboardDropdownBody/configuration/hooks/useTitleConfiguration.js";
/**
 * @internal
 */
export type IAttributeFilterParentFiltering = ReturnType<typeof useParentsConfiguration> & ReturnType<typeof useDisplayFormConfiguration> & ReturnType<typeof useTitleConfiguration> & ReturnType<typeof useSelectionModeConfiguration> & ReturnType<typeof useModeConfiguration> & ReturnType<typeof useSelectionTypeConfiguration> & {
    onConfigurationSave: (currentDisplayFormRef: ObjRef, committedSelectionElements: IAttributeElement[]) => void;
    showDisplayFormPicker: boolean;
    showResetTitle: boolean;
    defaultAttributeFilterTitle?: string;
    attributeFilterDisplayForm: ObjRef;
    availableDatasetsForFilter: IAttributeOrMeasure[];
} & ReturnType<typeof useLimitingItemsConfiguration> & ReturnType<typeof useDependentDateFiltersConfiguration>;
export declare const AttributeFilterParentFiltering: import("react").Context<IAttributeFilterParentFiltering>;
/**
 * @internal
 */
export declare const useAttributeFilterParentFiltering: () => IAttributeFilterParentFiltering;
/**
 * @internal
 */
export type IAttributeFilterParentFilteringProviderProps = {
    filterItem: DashboardAttributeFilterItem;
    displayAsLabel?: ObjRef;
    attributes?: IAttributeMetadataObject[];
    children?: ReactNode;
};
/**
 * @internal
 */
export declare function AttributeFilterParentFilteringProvider({ children, filterItem, attributes, displayAsLabel }: IAttributeFilterParentFilteringProviderProps): import("react/jsx-runtime").JSX.Element;
/**
 * Lightweight noop provider for text filter types (arbitrary, match) that don't support
 * the full parent filtering configuration yet. Prevents context consumers from crashing
 * when the full {@link AttributeFilterParentFilteringProvider} is not rendered.
 *
 * @internal
 */
export declare function AttributeFilterNoopParentFilteringProvider({ children, displayForm }: {
    children: ReactNode;
    displayForm: ObjRef;
}): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=AttributeFilterParentFilteringContext.d.ts.map