import { IFetchOptions, IRequestConfig, IRequestOptions, ResponseObject, SDKRequestInterface } from '@cloudbase/adapter-interface';
import type { ICustomReqOpts } from './types';
import { ICloudbaseConfig } from '@cloudbase/types';
export declare class NodeRequest implements SDKRequestInterface {
    config: IRequestConfig & ICloudbaseConfig;
    private readonly timeout;
    private readonly restrictedMethods;
    constructor(config: IRequestConfig & ICloudbaseConfig);
    getClientCredential(opts: {
        origin: string;
    }): Promise<any>;
    getRealUrl(url: string, headers: Record<string, any>, body: any): string;
    getReqOptions: (url: string, options: {
        method?: any;
        headers: any;
        body?: any;
        credentials?: string;
        signal?: AbortSignal;
        url?: any;
    }) => Promise<{
        method?: any;
        headers: any;
        body?: any;
        credentials?: string;
        signal?: AbortSignal;
        url?: any;
    }>;
    get: (options: IRequestOptions) => Promise<ResponseObject>;
    post: (options: IRequestOptions) => Promise<ResponseObject>;
    put: (options: IRequestOptions) => Promise<ResponseObject>;
    upload: (options: IRequestOptions) => Promise<ResponseObject>;
    download: (options: IRequestOptions) => Promise<unknown>;
    fetch: (options: Omit<IFetchOptions, "signal"> & {
        signal?: AbortSignal;
        customReqOpts?: ICustomReqOpts;
    }) => Promise<ResponseObject>;
    request: (options: IRequestOptions, enableAbort?: boolean) => Promise<ResponseObject>;
}
