export interface ResponseError {
    data?: object | null;
    error?: boolean;
    errorText?: string;
}
export interface TaskAlreadyExistsError {
    data?: {
        id?: number;
        alreadyExists?: boolean;
    };
    error?: boolean;
    errorText?: string;
}
export interface TaskCreated {
    data?: {
        id?: number;
        alreadyExists?: boolean;
    };
    error?: boolean;
    errorText?: string;
}
export type Goods = Good[];
export interface Good {
    nmID: number;
    price?: number;
    discount?: number;
}
export type SizeGoodsBody = SizeGoodReq[];
export interface SizeGoodReq {
    nmID: number;
    sizeID: number;
    price: number;
}
export interface GoodsList {
    nmID?: number;
    vendorCode?: string;
    sizes?: {
        sizeID?: number;
        price?: number;
        discountedPrice?: number;
        techSizeName?: string;
    }[];
    currencyIsoCode4217?: string;
    discount?: number;
    editableSizePrice?: boolean;
}
export interface SizeGood {
    nmID?: number;
    sizeID?: number;
    vendorCode?: string;
    price?: number;
    currencyIsoCode4217?: string;
    discountedPrice?: number;
    discount?: number;
    techSizeName?: string;
    editableSizePrice?: boolean;
}
export interface GoodBufferHistory {
    nmID?: number;
    vendorCode?: string;
    sizeID?: number;
    techSizeName?: string;
    price?: number;
    currencyIsoCode4217?: string;
    discount?: number;
    status?: GoodStatusBuffer;
    errorText?: string;
}
export interface GoodHistory {
    nmID?: number;
    vendorCode?: string;
    sizeID?: number;
    techSizeName?: string;
    price?: number;
    currencyIsoCode4217?: string;
    discount?: number;
    status?: GoodStatus;
    errorText?: string;
}
export interface SupplierTaskMetadata {
    uploadID?: number;
    status?: TaskStatus;
    uploadDate?: Date;
    activationDate?: Date1;
    overAllGoodsNumber?: number;
    successGoodsNumber?: number;
}
export interface SupplierTaskMetadataBuffer {
    uploadID?: number;
    status?: TaskStatusBuffer;
    uploadDate?: Date;
    activationDate?: Date1;
    overAllGoodsNumber?: number;
    successGoodsNumber?: number;
}
export type Date = string;
export type Date1 = string;
export type TaskStatus = number;
export type TaskStatusBuffer = number;
export type GoodStatus = number;
export type GoodStatusBuffer = number;
export interface QuarantineGoods {
    nmID?: number;
    sizeID?: number;
    techSizeName?: string;
    currencyIsoCode4217?: string;
    newPrice?: number;
    oldPrice?: number;
    newDiscount?: number;
    oldDiscount?: number;
    priceDiff?: number;
}
export type QueryParamsType = Record<string | number, any>;
export type ResponseFormat = keyof Omit<Body, "body" | "bodyUsed">;
export interface FullRequestParams extends Omit<RequestInit, "body"> {
    secure?: boolean;
    path: string;
    type?: ContentType;
    query?: QueryParamsType;
    format?: ResponseFormat;
    body?: unknown;
    baseUrl?: string;
    cancelToken?: CancelToken;
}
export type RequestParams = Omit<FullRequestParams, "body" | "method" | "query" | "path">;
export interface ApiConfig<SecurityDataType = unknown> {
    baseUrl?: string;
    baseApiParams?: Omit<RequestParams, "baseUrl" | "cancelToken" | "signal">;
    securityWorker?: (securityData: SecurityDataType | null) => Promise<RequestParams | void> | RequestParams | void;
    customFetch?: typeof fetch;
}
export interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response {
    data: D;
    error: E;
}
type CancelToken = Symbol | string | number;
export declare enum ContentType {
    Json = "application/json",
    FormData = "multipart/form-data",
    UrlEncoded = "application/x-www-form-urlencoded",
    Text = "text/plain"
}
export declare class HttpClient<SecurityDataType = unknown> {
    baseUrl: string;
    private securityData;
    private securityWorker?;
    private abortControllers;
    private customFetch;
    private baseApiParams;
    constructor(apiConfig?: ApiConfig<SecurityDataType>);
    setSecurityData: (data: SecurityDataType | null) => void;
    protected encodeQueryParam(key: string, value: any): string;
    protected addQueryParam(query: QueryParamsType, key: string): string;
    protected addArrayQueryParam(query: QueryParamsType, key: string): any;
    protected toQueryString(rawQuery?: QueryParamsType): string;
    protected addQueryParams(rawQuery?: QueryParamsType): string;
    private contentFormatters;
    protected mergeRequestParams(params1: RequestParams, params2?: RequestParams): RequestParams;
    protected createAbortSignal: (cancelToken: CancelToken) => AbortSignal | undefined;
    abortRequest: (cancelToken: CancelToken) => void;
    request: <T = any, E = any>({ body, secure, path, type, query, format, baseUrl, cancelToken, ...params }: FullRequestParams) => Promise<HttpResponse<T, E>>;
}
export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
    api: {
        v2UploadTaskCreate: (data: {
            data?: Goods | undefined;
        }, params?: RequestParams) => Promise<HttpResponse<TaskCreated, void | ResponseError>>;
        v2UploadTaskSizeCreate: (data: {
            data?: SizeGoodsBody | undefined;
        }, params?: RequestParams) => Promise<HttpResponse<TaskCreated, void | ResponseError>>;
        v2HistoryTasksList: (query: {
            uploadID: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: SupplierTaskMetadata | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
        }, void | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        }>>;
        v2HistoryGoodsTaskList: (query: {
            limit: number;
            offset?: number;
            uploadID: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                uploadID?: number | undefined;
                historyGoods?: GoodHistory[] | undefined;
            } | undefined;
        }, void | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        }>>;
        v2BufferTasksList: (query: {
            uploadID: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: SupplierTaskMetadataBuffer | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
        }, void | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        }>>;
        v2BufferGoodsTaskList: (query: {
            limit: number;
            offset?: number;
            uploadID: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                uploadID?: number | undefined;
                bufferGoods?: GoodBufferHistory[] | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
        }, void | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        } | {
            errorText?: string | undefined;
        }>>;
        v2ListGoodsFilterList: (query: {
            limit: number;
            offset?: number;
            filterNmID?: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                listGoods?: GoodsList[] | undefined;
            } | undefined;
        }, void | ResponseError>>;
        v2ListGoodsSizeNmList: (query: {
            limit: number;
            offset?: number;
            nmID: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                listGoods?: SizeGood[] | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
        }, void | ResponseError>>;
        v2QuarantineGoodsList: (query: {
            limit: number;
            offset?: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                quarantineGoods?: QuarantineGoods[] | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
        }, void | ResponseError>>;
    };
}
export {};
//# sourceMappingURL=prices.d.ts.map