export interface ResponseWithReturn {
    total?: number;
}
export interface StatInterval {
    interval?: {
        begin?: string;
        end?: string;
    };
    stats?: StatsBlok1[];
}
export interface StatDate {
    dates?: string[];
    stats?: StatsBlok2[];
}
export interface Stat {
    stats?: StatsBlok1[];
}
export interface StatsBlok1 {
    item_id?: number;
    item_name?: string;
    category_name?: string;
    advert_type?: number;
    place?: number;
    views?: number;
    clicks?: number;
    cr?: number;
    ctr?: number;
    date_from?: string;
    date_to?: string;
    subject_name?: string;
    atbs?: number;
    orders?: number;
    price?: number;
    cpc?: number;
    status?: number;
    daily_stats?: DailyStats1;
    expenses?: number;
    cr1?: number;
    cr2?: number;
}
export type DailyStats1 = {
    date?: string;
    app_type_stats?: {
        app_type?: number;
        stats?: Stats1;
    }[];
}[];
export type Stats1 = {
    views?: number;
    clicks?: number;
    atbs?: number;
    ctr?: number;
}[];
export interface StatsBlok2 {
    item_id?: number;
    item_name?: string;
    category_name?: string;
    advert_type?: number;
    place?: number;
    views?: number;
    clicks?: number;
    cr?: number;
    ctr?: number;
    date_from?: string;
    date_to?: string;
    subject_name?: string;
    atbs?: number;
    orders?: number;
    price?: number;
    cpc?: number;
    status?: number;
    daily_stats?: DailyStats2;
    expenses?: number;
    cr1?: number;
    cr2?: number;
}
export type DailyStats2 = {
    date?: string;
    app_type_stats?: {
        app_type?: number;
        stats?: Stats2;
    }[];
}[];
export type Stats2 = {
    views?: number;
    clicks?: number;
    atbs?: number;
    orders?: number;
    cr?: number;
    ctr?: number;
}[];
export type RequestWithDate = {
    id?: number;
    dates?: string[];
}[];
export type RequestWithCampaignID = {
    id?: number;
}[];
export type RequestWithInterval = {
    id?: number;
    interval?: {
        begin?: string;
        end?: string;
    };
}[];
export type Days = {
    date?: string;
    views?: number;
    clicks?: number;
    ctr?: number;
    cpc?: number;
    sum?: number;
    atbs?: number;
    orders?: number;
    cr?: number;
    shks?: number;
    sum_price?: number;
    apps?: {
        views?: number;
        clicks?: number;
        ctr?: number;
        cpc?: number;
        sum?: number;
        atbs?: number;
        orders?: number;
        cr?: number;
        shks?: number;
        sum_price?: number;
        nm?: {
            views?: number;
            clicks?: number;
            ctr?: number;
            cpc?: number;
            sum?: number;
            atbs?: number;
            orders?: number;
            cr?: number;
            shks?: number;
            sum_price?: number;
            name?: string;
            nmId?: number;
        }[];
        appType?: number;
    }[];
}[];
export type BoosterStats = {
    date?: string;
    nm?: number;
    avg_position?: number;
}[];
export type ResponseWithInterval = {
    interval?: {
        begin?: string;
        end?: string;
    };
    views?: number;
    clicks?: number;
    ctr?: number;
    cpc?: number;
    sum?: number;
    atbs?: number;
    orders?: number;
    cr?: number;
    shks?: number;
    sum_price?: number;
    days?: Days;
    boosterStats?: BoosterStats;
    advertId?: number;
}[];
export type ResponseWithDate = {
    dates?: string[];
    views?: number;
    clicks?: number;
    ctr?: number;
    cpc?: number;
    sum?: number;
    atbs?: number;
    orders?: number;
    cr?: number;
    shks?: number;
    sum_price?: number;
    days?: Days;
    boosterStats?: BoosterStats;
    advertId?: number;
}[];
export interface ResponseInfoAdvert {
    endTime?: string;
    createTime?: string;
    changeTime?: string;
    startTime?: string;
    name?: string;
    params?: {
        subjectName?: string;
        active?: boolean;
        intervals?: {
            Begin?: number;
            End?: number;
        }[];
        price?: number;
        menuId?: number;
        subjectId?: number;
        setId?: number;
        setName?: string;
        menuName?: string;
        nms?: {
            nm?: number;
            active?: boolean;
        }[];
    }[];
    dailyBudget?: number;
    advertId?: number;
    status?: number;
    type?: number;
    paymentType?: string;
    searchPluseState?: boolean;
}
export interface ResponseInfoAdvertType8 {
    endTime?: string;
    createTime?: string;
    changeTime?: string;
    startTime?: string;
    autoParams?: {
        subject?: {
            id?: number;
            name?: string;
        };
        sets?: {
            id?: number;
            name?: string;
        }[];
        menus?: {
            id?: number;
            name?: string;
        }[];
        active?: {
            carousel?: boolean;
            recom?: boolean;
            booster?: boolean;
        };
        nmCPM?: {
            nm?: number;
            cpm?: number;
        }[];
        nms?: number[];
        cpm?: number;
    };
    name?: string;
    dailyBudget?: number;
    advertId?: number;
    status?: number;
    type?: number;
    paymentType?: string;
}
export interface ResponseInfoAdvertType9 {
    endTime?: string;
    createTime?: string;
    changeTime?: string;
    startTime?: string;
    searchPluseState?: boolean;
    name?: string;
    unitedParams?: {
        subject?: {
            id?: number;
            name?: string;
        };
        menus?: {
            id?: number;
            name?: string;
        }[];
        nms?: number[];
        searchCPM?: number;
        catalogCPM?: number;
    }[];
    dailyBudget?: number;
    advertId?: number;
    status?: number;
    paymentType?: string;
    type?: number;
}
export interface ResponseAdvError1 {
    error?: string;
}
export interface V0KeywordsStatistic {
    clicks: number;
    ctr: number;
    keyword: string;
    sum: number;
    views: number;
}
export interface V0KeywordsStatistics {
    date: string;
    stats: V0KeywordsStatistic[];
}
export interface V0KeywordsStatisticsResponse {
    keywords: V0KeywordsStatistics[];
}
export interface ErrorResponse {
    type: string;
    message: string;
}
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> {
    adv: {
        v1SaveAdCreate: (data: {
            type?: number;
            name?: string;
            subjectId?: number;
            sum?: number;
            btype?: number;
            on_pause?: boolean;
            nms?: number[];
            cpm?: number;
        }, params?: RequestParams) => Promise<HttpResponse<string, void | {
            error?: string | undefined;
        }>>;
        v2SeacatSaveAdCreate: (data: {
            campaignName?: string;
            nms?: number[];
        }, params?: RequestParams) => Promise<HttpResponse<number, string | void>>;
        v0DeleteList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<void, void | ResponseAdvError1>>;
        v0RenameCreate: (data: {
            advertId: number;
            name: string;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1PromotionCountList: (params?: RequestParams) => Promise<HttpResponse<{
            adverts?: {
                type?: number | undefined;
                status?: number | undefined;
                count?: number | undefined;
                advert_list?: {
                    advertId?: number | undefined;
                    changeTime?: string | undefined;
                }[] | undefined;
            }[] | null | undefined;
            all?: number | undefined;
        }, void>>;
        v1PromotionAdvertsCreate: (data: number[], query?: {
            status?: -1 | 4 | 7 | 8 | 9 | 11;
            type?: 4 | 5 | 6 | 7 | 8 | 9;
            order?: "create" | "change" | "id";
            direction?: "desc" | "asc";
        }, params?: RequestParams) => Promise<HttpResponse<(ResponseInfoAdvert | ResponseInfoAdvertType8 | ResponseInfoAdvertType9)[], string | void>>;
        v0CpmCreate: (data: {
            advertId: number;
            type: 5 | 6 | 7 | 8 | 9;
            cpm: number;
            param: number;
            instrument?: number;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1AdvertStopCreate: (data: {
            advert_id: number;
            reason?: string;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1AdvertPauseCreate: (data: {
            advert_id: number;
            reason?: string;
        }, params?: RequestParams) => Promise<HttpResponse<void, void>>;
        v1AdvertStartCreate: (data: {
            advert_id: number;
            reason?: string;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1ItemCpmChangeCreate: (data: {
            advert_id: number;
            item_id: number;
            cpm: string;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1CountList: (params?: RequestParams) => Promise<HttpResponse<{
            all?: number | undefined;
            adverts?: {
                type?: number | undefined;
                status?: number | undefined;
                count?: number | undefined;
            } | undefined;
        }, void>>;
        v1AdvertsList: (query?: {
            status?: number;
            type?: number;
            limit?: number;
            offset?: number;
            order?: string;
            direction?: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            advertId?: number | undefined;
            name?: string | undefined;
            brand?: string | undefined;
            type?: number | undefined;
            status?: number | undefined;
            createTime?: string | undefined;
            endTime?: string | undefined;
        }[], void>>;
        v1AdvertList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            advertId?: number | undefined;
            name?: string | undefined;
            brand?: string | undefined;
            type?: number | undefined;
            status?: number | undefined;
            createTime?: string | undefined;
            extended?: {
                reason?: string | null | undefined;
                expenses?: number | undefined;
                from?: string | undefined;
                to?: string | undefined;
                updated_at?: string | undefined;
                price?: number | undefined;
                budget?: number | undefined;
                operation?: number | undefined;
                contract_id?: number | undefined;
            } | undefined;
            items?: {
                id?: number | undefined;
                name?: string | undefined;
                status?: number | undefined;
                place?: number | undefined;
                budget?: number | undefined;
                daily_limit?: number | undefined;
                category_name?: string | undefined;
                cpm?: number | undefined;
                url?: string | undefined;
                advert_type?: number | undefined;
                created_at?: string | undefined;
                updated_at?: string | undefined;
                date_from?: string | undefined;
                date_to?: string | undefined;
                nms?: number[] | undefined;
                bottomText1?: string | undefined;
                bottomText2?: string | undefined;
                message?: string | undefined;
                additionalSettings?: number | undefined;
                receiversCount?: number | undefined;
                subject_id?: number | undefined;
                subject_name?: string | undefined;
                action_name?: string | undefined;
                show_hours?: {
                    From?: number | undefined;
                    To?: number | undefined;
                }[] | undefined;
                Erid?: string | undefined;
            }[] | undefined;
        }, void>>;
        v1StatsCreate: (data: RequestWithDate | RequestWithInterval, params?: RequestParams) => Promise<HttpResponse<(StatInterval | StatDate | Stat)[], void>>;
        v0StartList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v0PauseList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v0StopList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1BalanceList: (params?: RequestParams) => Promise<HttpResponse<{
            balance?: number | undefined;
            net?: number | undefined;
            bonus?: number | undefined;
        }, string | void>>;
        v1BudgetList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            cash?: number | undefined;
            netting?: number | undefined;
            total?: number | undefined;
        }, string | void>>;
        v1BudgetDepositCreate: (query: {
            id: number;
        }, data: {
            sum?: number;
            type?: number;
            return?: boolean;
        }, params?: RequestParams) => Promise<HttpResponse<ResponseWithReturn, void | {
            error?: string | undefined;
        }>>;
        v1UpdList: (query: {
            from: string;
            to: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            updNum?: number | undefined;
            updTime?: string | undefined;
            updSum?: number | undefined;
            advertId?: number | undefined;
            campName?: string | undefined;
            advertType?: number | undefined;
            paymentType?: string | undefined;
            advertStatus?: number | undefined;
        }[], string | void>>;
        v1PaymentsList: (query?: {
            from?: string;
            to?: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            id?: number | undefined;
            date?: string | undefined;
            sum?: number | undefined;
            type?: number | undefined;
            statusId?: number | undefined;
            cardStatus?: string | undefined;
        }[], string | void>>;
        v1SupplierSubjectsList: (params?: RequestParams) => Promise<HttpResponse<{
            id?: number | undefined;
            name?: string | undefined;
            count?: number | undefined;
        }[] | null, void>>;
        v2SupplierNmsCreate: (data: number[], params?: RequestParams) => Promise<HttpResponse<{
            title?: string | undefined;
            nm?: number | undefined;
            subjectId?: number | undefined;
        }[], string | void>>;
        v2FullstatsCreate: (data: RequestWithDate | RequestWithInterval | RequestWithCampaignID, params?: RequestParams) => Promise<HttpResponse<ResponseWithDate | ResponseWithInterval, void | ResponseAdvError1>>;
        v1AutoStatList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            views?: number | undefined;
            clicks?: number | undefined;
            ctr?: number | undefined;
            cpc?: number | undefined;
            spend?: number | undefined;
        }, void | ResponseAdvError1>>;
        v2AutoStatWordsList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            excluded?: string[] | undefined;
            clusters?: {
                cluster?: string | undefined;
                count?: number | undefined;
                keywords?: string[] | undefined;
            }[] | undefined;
        }, void | ResponseAdvError1>>;
        v2AutoDailyWordsList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            date?: string | undefined;
            stat?: {
                keyword?: string | undefined;
                views?: number | undefined;
                clicks?: number | undefined;
                ctr?: number | undefined;
                sum?: number | undefined;
            }[] | undefined;
        }, void | ResponseAdvError1>>;
        v1StatWordsList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            words?: {
                phrase?: string[] | undefined;
                strong?: string[] | undefined;
                excluded?: string[] | undefined;
                pluse?: string[] | undefined;
                keywords?: {
                    keyword?: string | undefined;
                    count?: number | undefined;
                }[] | undefined;
                fixed?: boolean | undefined;
            } | undefined;
            stat?: {
                advertId?: number | undefined;
                keyword?: string | undefined;
                advertName?: string | undefined;
                campaignName?: string | undefined;
                begin?: string | undefined;
                end?: string | undefined;
                views?: number | undefined;
                clicks?: number | undefined;
                frq?: number | undefined;
                ctr?: number | undefined;
                cpc?: number | undefined;
                duration?: number | undefined;
                sum?: number | undefined;
            }[] | undefined;
        }, void>>;
        v1SeacatStatList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            totalViews?: number | undefined;
            totalClicks?: number | undefined;
            totalOrders?: number | undefined;
            totalSum?: number | undefined;
            dates?: {
                date?: string | undefined;
                search?: {
                    views?: number | undefined;
                    clicks?: number | undefined;
                    orders?: number | undefined;
                    sum?: number | undefined;
                } | undefined;
                catalog?: {
                    views?: number | undefined;
                    clicks?: number | undefined;
                    orders?: number | undefined;
                    sum?: number | undefined;
                } | undefined;
            }[] | undefined;
        }, void | {
            error?: string | undefined;
        }>>;
        v0StatsKeywordsList: (query: {
            advert_id: number;
            from: string;
            to: string;
        }, params?: RequestParams) => Promise<HttpResponse<V0KeywordsStatisticsResponse, void | ErrorResponse>>;
        v0ActiveList: (query: {
            id: number;
            subjectId: number;
            status: string;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1SearchSetPlusList: (query: {
            id: number;
            fixed?: boolean;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1SearchSetPlusCreate: (query: {
            id: number;
        }, data: {
            pluse?: string[];
        }, params?: RequestParams) => Promise<HttpResponse<string[], string | void>>;
        v1SearchSetPhraseCreate: (query: {
            id: number;
        }, data: {
            phrase?: string[];
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1SearchSetStrongCreate: (query: {
            id: number;
        }, data: {
            strong?: string[];
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1SearchSetExcludedCreate: (query: {
            id: number;
        }, data: {
            excluded?: string[];
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1AutoGetnmtoaddList: (query: {
            id: number;
        }, params?: RequestParams) => Promise<HttpResponse<number[], void>>;
        v1AutoUpdatenmCreate: (query: {
            id: number;
        }, data: {
            add?: number[];
            delete?: number[];
        }, params?: RequestParams) => Promise<HttpResponse<void, void | ResponseAdvError1>>;
        v1AutoActiveCreate: (query: {
            id: number;
        }, data: {
            recom?: boolean;
            booster?: boolean;
            carousel?: boolean;
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
        v1AutoSetExcludedCreate: (query: {
            id: number;
        }, data: {
            excluded?: string[];
        }, params?: RequestParams) => Promise<HttpResponse<void, string | void>>;
    };
}
export {};
//# sourceMappingURL=promotion.d.ts.map