/**
 * @packageDocumentation
 * @module Properties
 */
import { PropsWithChildren } from "react";
import { PropertyDescription } from "@itwin/appui-abstract";
import { IModelConnection } from "@itwin/core-frontend";
import { NavigationPropertyInfo } from "@itwin/presentation-common";
import { IContentDataProvider } from "../../common/ContentDataProvider.js";
/**
 * A context providing necessary information for [[NavigationPropertyEditor]].
 * @internal
 */
export interface NavigationPropertyEditorContext {
    /** iModel connection to pull data from. */
    imodel: IModelConnection;
    /** Getter to get [NavigationPropertyInfo]($presentation-common) for specific property. */
    getNavigationPropertyInfo: (property: PropertyDescription) => Promise<NavigationPropertyInfo | undefined>;
}
/**
 * Props for [[NavigationPropertyEditorContextProvider]].
 * @public
 */
export interface NavigationPropertyEditorContextProviderProps {
    /** iModel connection to pull data from. */
    imodel: IModelConnection;
    /** Getter to get [NavigationPropertyInfo]($presentation-common) for specific property. */
    getNavigationPropertyInfo: (property: PropertyDescription) => Promise<NavigationPropertyInfo | undefined>;
}
/**
 * Creates context that supplies necessary navigation property-related information for [[NavigationPropertyEditor]].
 * @public
 */
export declare function NavigationPropertyEditorContextProvider({ children, ...props }: PropsWithChildren<NavigationPropertyEditorContextProviderProps>): import("react/jsx-runtime.js").JSX.Element;
/**
 * Returns context provided by [[NavigationPropertyEditorContextProvider]]. The context is required for rendering [[NavigationPropertyEditor]] with editable
 * navigation property values.
 *
 * @internal
 */
export declare function useNavigationPropertyEditorContext(): NavigationPropertyEditorContext | undefined;
/**
 * Custom hook that creates props for [[NavigationPropertyEditorContextProvider]].
 * @public
 */
export declare function useNavigationPropertyEditorContextProviderProps(imodel: IModelConnection, dataProvider: IContentDataProvider): NavigationPropertyEditorContextProviderProps;
//# sourceMappingURL=NavigationPropertyEditorContext.d.ts.map