import { FssSdkConfig } from "../fss-sdk-config";
import * as yup from "yup";
export declare function createApiRequester(config: FssSdkConfig): FssApiRequester;
export interface FssApiRequester {
    request<TResponse>(path: string, param: {
        [key: string]: any;
    }, options?: {
        schema?: yup.Schema;
        withAuth?: boolean;
        cookie?: string;
    }): Promise<TResponse>;
    requestWithCookieResponse<TResponse>(path: string, param: {
        [key: string]: any;
    }, options?: {
        schema?: yup.Schema;
        withAuth?: boolean;
        cookie?: string;
    }): Promise<FssApiCookieResponse<TResponse>>;
}
interface FssApiCookieResponse<T> {
    cookie: string | undefined;
    response: T;
}
export declare abstract class FssApiRequesterBase implements FssApiRequester {
    protected axiosBase: Axios.AxiosInstance;
    protected config: FssSdkConfig;
    constructor(config: FssSdkConfig);
    request<TResponse>(path: string, param: {
        [key: string]: any;
    }, options?: {
        schema?: yup.Schema;
        withAuth?: boolean;
        cookie?: string;
    }): Promise<TResponse>;
    requestWithCookieResponse<TResponse>(path: string, param: {
        [key: string]: any;
    }, options?: {
        schema?: yup.Schema;
        withAuth?: boolean;
        cookie?: string;
    }): Promise<FssApiCookieResponse<TResponse>>;
    protected getAdditionalHeaders(body: Buffer<ArrayBufferLike>): Promise<{
        [key: string]: any;
    }>;
}
export declare abstract class SignAuthApiRequesterBase extends FssApiRequesterBase {
    private privateKey;
    constructor(config: FssSdkConfig);
    private getPrivateKey;
    protected getAdditionalHeaders(body: Buffer<ArrayBufferLike>): Promise<{
        [key: string]: any;
    }>;
    protected abstract getSignInfo(body: Buffer<ArrayBufferLike>): Promise<{
        signTargetPrefix: Buffer<ArrayBufferLike>;
        additionalHeaders: {
            [key: string]: any;
        };
    }>;
}
export declare class NonceSignAuthApiRequester extends SignAuthApiRequesterBase {
    constructor(config: FssSdkConfig);
    protected getSignInfo(body: Buffer<ArrayBufferLike>): Promise<{
        signTargetPrefix: Buffer<ArrayBufferLike>;
        additionalHeaders: {
            [key: string]: any;
        };
    }>;
}
export declare class DatetimeSignAuthApiRequester extends SignAuthApiRequesterBase {
    constructor(config: FssSdkConfig);
    protected getSignInfo(body: Buffer<ArrayBufferLike>): Promise<{
        signTargetPrefix: Buffer<ArrayBufferLike>;
        additionalHeaders: {
            [key: string]: any;
        };
    }>;
}
export declare class AccessKeyAuthApiRequester extends FssApiRequesterBase {
    constructor(config: FssSdkConfig);
    protected getAdditionalHeaders(body: Buffer<ArrayBufferLike>): Promise<{
        [key: string]: any;
    }>;
}
export {};
//# sourceMappingURL=fss-api-requester.d.ts.map