import { ISPTermStorePickerService, IPnPTermStorePickerServiceProps, ITermStore, ITermSet, ITerm, IGroup, ITermSets } from "./ISPTermStorePickerService";
import { BaseComponentContext } from '@microsoft/sp-component-base';
import { IPickerTerm } from './../propertyFields/termPicker/IPropertyFieldTermPicker';
/**
 * Term Store Picker Service implementation that uses SharePoint REST API for taxonomy
 * This replaces the old @pnp/sp-taxonomy which is no longer available in PnPjs v4
 */
export default class PnPTermStorePickerService implements ISPTermStorePickerService {
    private props;
    private readonly _termSetCollectionObjectType;
    private readonly _termGroupCollectionObjectType;
    protected context: BaseComponentContext;
    private _termStoreId;
    private _termStores;
    private _groups;
    constructor(props: IPnPTermStorePickerServiceProps, context: BaseComponentContext);
    /**
     * Makes a request to the taxonomy REST API
     * @param endpoint - The endpoint path after /v2.1/_api/
     */
    private _taxonomyRequest;
    /**
     * Gets term stores from the taxonomy service
     */
    getTermStores(): Promise<ITermStore[]>;
    /**
     * Searches terms by provided text
     * @param searchText text to search
     */
    searchTermsByName(searchText: string): Promise<IPickerTerm[]>;
    /**
     * Gets term sets from the stores
     */
    getTermSets(): Promise<ITermSet[]>;
    /**
     * Gets all terms from the specified term set
     * @param termSet Term Set to get terms from
     */
    getAllTerms(termSet: ITermSet): Promise<ITerm[]>;
    /**
     * Get term sets from the specified group
     * @param group Term Group
     */
    getGroupTermSets(group: IGroup): Promise<ITermSets>;
    /**
     * Searches terms by provided text in the term sets specified by limitByTermsetNameOrID
     */
    private _searchTermsByTermSet;
    /**
     * Searches terms by provided text in the group specified by limitByGroupNameOrID
     */
    private _searchTermsByGroup;
    /**
     * Searches for terms across all term stores
     */
    private _searchAllTerms;
    /**
     * Filters terms by search text (starts with, case-insensitive)
     */
    private _filterTermsBySearch;
    /**
     * Converts an ITerm to an IPickerTerm
     */
    private _termToPickerTerm;
    /**
     * Ensures term stores and groups are loaded
     */
    private _ensureTermStores;
    /**
     * Converts a taxonomy API term set to the internal ITermSet format
     */
    private _convertTermSet;
    /**
     * Gets the default label from a taxonomy term
     */
    private _getDefaultLabel;
    /**
     * Gets the description from a taxonomy term
     */
    private _getDescription;
}
//# sourceMappingURL=PnPTermStorePickerService.d.ts.map