/** @packageDocumentation
 * @module InstancesFilter
 */
import "./InstanceFilterBuilder.scss";
import { PropertyFilterBuilderRendererProps } from "@itwin/components-react";
import { IModelConnection } from "@itwin/core-frontend";
import { ClassInfo, Descriptor, Keys } from "@itwin/presentation-common";
/**
 * Props for [[InstanceFilterBuilder]] component.
 * @internal
 */
export interface InstanceFilterBuilderProps extends PropertyFilterBuilderRendererProps {
    /** Currently selected classes. */
    selectedClasses: ClassInfo[];
    /** List of all available classes. */
    classes: ClassInfo[];
    /** Callback that is invoked when selected classes changes. */
    onSelectedClassesChanged: (classIds: string[]) => void;
    /** iModel connection that will be used for getting [[navigationPropertyEditorContext]] */
    imodel: IModelConnection;
    /** [Descriptor]($presentation-common) that will be used for getting [[navigationPropertyEditorContext]]. */
    descriptor: Descriptor;
    /** [Keys]($presentation-common) that will be passed through to [[FilterBuilderValueRenderer]] */
    descriptorInputKeys?: Keys;
}
/**
 * Component for building complex instance filters based on instance properties. In addition to filter builder component
 * it renders selector for classes that can be used to filter out available properties in filter rules.
 * @internal
 */
export declare function InstanceFilterBuilder(props: InstanceFilterBuilderProps): import("react/jsx-runtime").JSX.Element;
/**
 * Custom hook that extracts properties and classes from [Descriptor]($presentation-common) and creates props that can be used by [[InstanceFilterBuilder]] component.
 *
 * This hook also makes sure that when classes are selected available properties list is updated to contain only properties found on selected classes and vice versa -
 * when property is selected in one of the rules selected classes list is updated to contain only classes that has access to that property.
 * @internal
 */
export declare function usePresentationInstanceFilteringProps(descriptor: Descriptor, imodel: IModelConnection, initialActiveClasses?: ClassInfo[]): Required<Pick<InstanceFilterBuilderProps, "properties" | "classes" | "selectedClasses" | "onSelectedClassesChanged" | "propertyRenderer" | "onRulePropertySelected" | "isDisabled">>;
//# sourceMappingURL=InstanceFilterBuilder.d.ts.map