import { Observable } from 'rxjs';
import { IDeliveryClientConfig } from '../../config';
import { ICloudResponse, IHeader, ITaxonomyQueryConfig } from '../../interfaces';
import { TaxonomyResponses } from '../../models/';
import { QueryService } from '../../services';
import { BaseQuery } from '../common/base-query.class';
export declare abstract class BaseTaxonomyQuery<TResponse extends ICloudResponse> extends BaseQuery<TResponse> {
    protected config: IDeliveryClientConfig;
    protected queryService: QueryService;
    /**
     * Taxonomies endpoint URL action
     */
    protected readonly taxonomiesEndpoint: string;
    /**
     * Query configuration
     */
    protected _queryConfig: ITaxonomyQueryConfig;
    constructor(config: IDeliveryClientConfig, queryService: QueryService);
    /**
     * Used to configure query
     * @param queryConfig Query configuration
     */
    queryConfig(queryConfig: ITaxonomyQueryConfig): this;
    /**
     * Gets headers used by this query
     */
    getHeaders(): IHeader[];
    protected getTaxonomyQueryUrl(taxonomyCodename: string): string;
    protected getTaxonomiesQueryUrl(): string;
    protected runTaxonomyQuery(codename: string): Observable<TaxonomyResponses.TaxonomyResponse>;
    protected runTaxonomiesQuery(): Observable<TaxonomyResponses.TaxonomiesResponse>;
}
