import { AnsiLogger, LogLevel } from 'matterbridge/logger';
import { Config } from './config-types.js';
import { Client, Dispatcher } from 'undici';
import { IncomingHttpHeaders } from 'undici/types/header.js';
import { CheckerT, IErrorDetail } from 'ts-interface-checker';
export type Method = Dispatcher.HttpMethod;
export type Headers = IncomingHttpHeaders;
export type Request = Dispatcher.DispatchOptions;
export type Response = Dispatcher.ResponseData;
export declare class DysonCloudAPIUserAgent {
    readonly log: AnsiLogger;
    readonly config: Config;
    readonly china: boolean;
    readonly client: Client;
    readonly headers: Headers;
    requestCount: number;
    constructor(log: AnsiLogger, config: Config, china: boolean);
    setBearerToken(token: string): void;
    request<Type>(checker: CheckerT<Type>, method: Method, path: string, body?: object): Promise<Type>;
    requestCore(request: Request): Promise<string>;
    logHeaders(name: string, headers: Headers): void;
    logBody(name: string, body: unknown): void;
    logCheckerValidation(level: LogLevel, request: Request, body: unknown, errors?: IErrorDetail[]): void;
}
//# sourceMappingURL=dyson-cloud-api-ua.d.ts.map