import { CacheServiceInterface } from './cache';
import { HttpServiceInterface } from './interface';
import { JwtTokenService } from './token';
export interface HttpServiceBuilderOptions {
    baseUrl: string;
    jwt: JwtBuilderOptions;
    cache?: CacheBuilderOptions;
}
export interface HttpServiceBuilderFromEnvOptions {
    baseUrl: string;
    audience: string;
    tenantIdentifier?: string;
}
export interface JwtBuilderOptions {
    tokenUrl: string;
    clientId: string;
    clientSecret: string;
    audience?: string;
    tenantIdentifier?: string;
}
export interface CacheBuilderOptions {
    type?: 'memory' | 'redis' | 'filesystem' | string;
    redisUrl?: string;
    keyPrefix?: string;
    path?: string;
}
export declare class HttpServiceBuilder {
    static build(options: HttpServiceBuilderOptions): HttpServiceInterface;
    static buildFromEnv(options: HttpServiceBuilderFromEnvOptions): HttpServiceInterface;
    static buildJwtTokenService(options: JwtBuilderOptions, cacheService: CacheServiceInterface): JwtTokenService;
    static buildCacheService(options?: CacheBuilderOptions): CacheServiceInterface;
}
