import { Observable } from 'rxjs';
import { IDeliveryClientConfig } from '../../config';
import { ICloudResponse, IQueryConfig, IQueryParameter } from '../../interfaces';
import { QueryService } from '../../services';
export declare abstract class BaseQuery<TResponse extends ICloudResponse> {
    protected config: IDeliveryClientConfig;
    protected queryService: QueryService;
    protected parameters: IQueryParameter[];
    protected customUrl?: string;
    protected abstract _queryConfig: IQueryConfig;
    constructor(config: IDeliveryClientConfig, queryService: QueryService);
    abstract getUrl(): string;
    abstract getObservable(): Observable<TResponse>;
    customParameter(name: string, value: string): this;
    withUrl(url: string): this;
    getParameters(): IQueryParameter[];
    getPromise(): Promise<TResponse>;
    protected resolveUrlInternal(action: string): string;
}
