/**
 * Federated Search ver10 module
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 * @see https://www.onvif.org/ver10/federatedsearch.wsdl
 */
import { Onvif, OnvifServices } from './onvif';
import Service from './service';
import { Capabilities, GetSearchResults, GetSearchResultsResponse, GetServiceFeatures, GetServiceFeaturesResponse, RegisterDatabase, RegisterDatabaseResponse, Search, SearchResponse } from './interfaces/federatedsearch';
/**
 * Federated Search service
 * @example
 * ```ts
 * const caps = await cam.federatedSearch.getServiceCapabilities();
 * const features = await cam.federatedSearch.getServiceFeatures({ inputCapabilities: {} });
 * ```
 */
export declare class FederatedSearch extends Service {
    constructor(onvif: Onvif, service: keyof OnvifServices);
    private static termTypeToBuild;
    private static oneOrMany;
    private static registerDatabaseToBuild;
    /**
     * Returns the capabilities of the federated search service.
     */
    getServiceCapabilities(): Promise<Capabilities>;
    /**
     * Returns service features matching the requested capabilities.
     * @param options
     */
    getServiceFeatures({ inputCapabilities }: GetServiceFeatures): Promise<GetServiceFeaturesResponse>;
    /**
     * Executes a federated search query.
     * @param options
     */
    search({ inputQuery }: Search): Promise<SearchResponse>;
    /**
     * Returns results from a previous search query.
     * @param options
     */
    getSearchResults({ results }: GetSearchResults): Promise<GetSearchResultsResponse>;
    /**
     * Registers a database with the federated search service.
     * @param options
     */
    registerDatabase(database: RegisterDatabase): Promise<RegisterDatabaseResponse>;
}
