import { IQuery } from "../../../search/types/IHubCatalog";
import type { IArcGISContext } from "../../../types/IArcGISContext";
import { IUiSchemaElement } from "../types";
export type IFetchCategoriesUiSchemaElementOptions = IFromOrgOptions | IFromQueryOptions;
interface IBaseOptions {
    source: "org" | "query";
    currentValues?: string[];
    elementScope?: string;
    i18nScope?: string;
    context: IArcGISContext;
}
interface IFromOrgOptions extends IBaseOptions {
    source: "org";
}
interface IFromQueryOptions extends IBaseOptions {
    source: "query";
    query: IQuery;
}
/**
 * Fetches categories UI schema element based on the source type, authentication context, and current values.
 *
 * @param opts Options for fetching categories UI schema element.
 * @param opts.source The source of categories, either "org" or "query".
 * @param opts.currentValues Current values to consider when building the UI schema element.
 * @param opts.context The ArcGIS context containing request options and portal information.
 * @param opts.query The query to use if the source is "query".
 * @returns An array of UI schema elements for categories, including recognized and unrecognized categories.
 */
export declare function fetchCategoriesUiSchemaElement(opts: IFetchCategoriesUiSchemaElementOptions): Promise<IUiSchemaElement[]>;
export {};
