export interface Response200 {
    data?: {
        templates?: {
            id?: string;
            name?: string;
            text?: string;
        }[];
    };
    error?: boolean;
    errorText?: string;
    additionalErrors?: string[] | null;
}
export interface PostTemplateOK {
    data?: {
        id?: string;
    };
    error?: boolean;
    errorText?: string;
    additionalErrors?: string[] | null;
}
export interface PatchDelRespOK {
    data?: boolean | null;
    error?: boolean;
    errorText?: string;
    additionalErrors?: string[] | null;
}
export interface ResponseErrorTemplate {
    data?: object | null;
    error?: boolean;
    errorText?: string;
    additionalErrors?: string[] | null;
}
export interface ResponsefeedbackErr {
    data?: object | null;
    error?: boolean;
    errorText?: string;
    additionalErrors?: string[] | null;
    requestId?: string;
}
export interface ProductRating {
    nmId?: number;
    imtId?: number;
    valuationsSum?: number;
    feedbacksCount?: number;
    valuation?: number;
    productName?: string | null;
    supplierArticle?: string;
    brandName?: string;
}
export type ResponseFeedback = {
    id?: string;
    userName?: string;
    matchingSize?: string;
    text?: string;
    productValuation?: number;
    createdDate?: string;
    state?: string;
    answer?: {
        text?: string;
        state?: string;
    };
    productDetails?: {
        nmId?: number;
        imtId?: number;
        productName?: string;
        supplierArticle?: string | null;
        supplierName?: string | null;
        brandName?: string | null;
        size?: string;
    };
    photoLinks?: {
        fullSize?: string;
        miniSize?: string;
    }[];
    video?: {
        previewImage?: string;
        link?: string;
        duration_sec?: number;
    };
    wasViewed?: boolean;
    isAbleSupplierFeedbackValuation?: boolean;
    supplierFeedbackValuation?: number;
    isAbleSupplierProductValuation?: boolean;
    supplierProductValuation?: number;
    isAbleReturnProductOrders?: boolean;
    returnProductOrdersDate?: string;
    bables?: 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> {
    api: {
        v1QuestionsCountUnansweredList: (params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                countUnanswered?: number | undefined;
                countUnansweredToday?: number | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1NewFeedbacksQuestionsList: (params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                hasNewQuestions?: boolean | undefined;
                hasNewFeedbacks?: boolean | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1QuestionsProductsRatingList: (query: {
            size: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                products?: {
                    nmId?: number | undefined;
                    imtId?: number | undefined;
                    productName?: string | undefined;
                    brandName?: string | undefined;
                    questionsCount?: string | undefined;
                }[] | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1QuestionsList: (query: {
            isAnswered: boolean;
            nmId?: number;
            take: number;
            skip: number;
            order?: string;
            dateFrom?: number;
            dateTo?: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                countUnanswered?: number | undefined;
                countArchive?: number | undefined;
                questions?: {
                    id?: string | undefined;
                    text?: string | undefined;
                    createdDate?: string | undefined;
                    state?: string | undefined;
                    answer?: {
                        text?: string | undefined;
                        editable?: boolean | undefined;
                        createDate?: string | undefined;
                    } | undefined;
                    productDetails?: {
                        nmId?: number | undefined;
                        imtId?: number | undefined;
                        productName?: string | undefined;
                        supplierArticle?: string | undefined;
                        supplierName?: string | undefined;
                        brandName?: string | undefined;
                    } | undefined;
                    wasViewed?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1QuestionsPartialUpdate: (data: {
            id: string;
            wasViewed: boolean;
        } | {
            id: string;
            answer: {
                text: string;
            };
            state: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: object | null | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1QuestionsReportList: (query: {
            isAnswered: boolean;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                fileName?: string | undefined;
                file?: File | undefined;
                contentType?: string | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1QuestionsCountList: (query?: {
            dateFrom?: number;
            dateTo?: number;
            isAnswered?: boolean;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: number | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1QuestionList: (query: {
            id: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                id?: string | undefined;
                text?: string | undefined;
                createdDate?: string | undefined;
                state?: string | undefined;
                answer?: {
                    text?: string | undefined;
                    editable?: boolean | undefined;
                    createDate?: string | undefined;
                } | undefined;
                productDetails?: {
                    nmId?: number | undefined;
                    imtId?: number | undefined;
                    productName?: string | undefined;
                    supplierArticle?: string | undefined;
                    supplierName?: string | undefined;
                    brandName?: string | undefined;
                } | undefined;
                wasViewed?: boolean | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void>>;
        v1FeedbacksCountUnansweredList: (params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                countUnanswered?: number | undefined;
                countUnansweredToday?: number | undefined;
                valuation?: string | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1ParentSubjectsList: (params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                subjectId?: number | undefined;
                subjectName?: string | undefined;
            }[] | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksProductsRatingList: (query: {
            subjectId: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                valuation?: string | undefined;
                feedbacksCount?: number | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksProductsRatingTopList: (query: {
            subjectId: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                productMaxRating?: ProductRating | undefined;
                productMinRating?: ProductRating | undefined;
            }[] | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksList: (query: {
            isAnswered: boolean;
            nmId?: number;
            take: number;
            skip: number;
            order?: "dateAsc" | "dateDesc";
            dateFrom?: number;
            dateTo?: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                countUnanswered?: number | undefined;
                countArchive?: number | undefined;
                feedbacks?: ResponseFeedback | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksPartialUpdate: (data: {
            id: string;
            wasViewed: boolean;
        } | {
            id: string;
            text: string;
        } | {
            id: string;
            supplierFeedbackValuation?: number;
            supplierProductValuation?: number;
        }, params?: RequestParams) => Promise<HttpResponse<void, void | ResponsefeedbackErr>>;
        v1SupplierValuationsList: (params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                feedbackValuations?: {
                    "1"?: string | undefined;
                    "2"?: string | undefined;
                    "3"?: string | undefined;
                    "4"?: string | undefined;
                    "5"?: string | undefined;
                    "6"?: string | undefined;
                    "7"?: string | undefined;
                } | undefined;
                productValuations?: {
                    "1"?: string | undefined;
                    "2"?: string | undefined;
                    "3"?: string | undefined;
                    "4"?: string | undefined;
                } | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void>>;
        v1FeedbacksOrderReturnCreate: (data: {
            feedbackId?: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: object | null | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksReportList: (query: {
            isAnswered: true | false;
            skip?: number;
            dateFrom?: number;
            dateTo?: number;
            order?: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                fileName?: string | undefined;
                file?: File | undefined;
                contentType?: string | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksArchiveList: (query: {
            nmId?: number;
            take: number;
            skip: number;
            order?: "dateAsc" | "dateDesc";
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                feedbacks?: ResponseFeedback | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksProductsRatingNmidList: (query: {
            nmId: number;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                valuation?: string | undefined;
                feedbacksCount?: number | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbacksCountList: (query?: {
            dateFrom?: number;
            dateTo?: number;
            isAnswered?: boolean;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: number | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void | ResponsefeedbackErr>>;
        v1FeedbackList: (query: {
            id: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            data?: {
                id?: number | undefined;
                userName?: string | undefined;
                matchingSize?: string | undefined;
                text?: string | undefined;
                productValuation?: number | undefined;
                createdDate?: string | undefined;
                state?: string | undefined;
                answer?: {
                    text?: string | undefined;
                    state?: string | undefined;
                } | undefined;
                productDetails?: {
                    nmId?: number | undefined;
                    imtId?: number | undefined;
                    productName?: string | undefined;
                    supplierArticle?: string | null | undefined;
                    supplierName?: string | null | undefined;
                    brandName?: string | null | undefined;
                    size?: string | undefined;
                } | undefined;
                photoLinks?: {
                    fullSize?: string | undefined;
                    miniSize?: string | undefined;
                }[] | undefined;
                video?: {
                    previewImage?: string | undefined;
                    link?: string | undefined;
                    duration_sec?: number | undefined;
                } | undefined;
                wasViewed?: boolean | undefined;
                isAbleSupplierFeedbackValuation?: boolean | undefined;
                supplierFeedbackValuation?: number | undefined;
                isAbleSupplierProductValuation?: boolean | undefined;
                supplierProductValuation?: number | undefined;
                isAbleReturnProductOrders?: boolean | undefined;
                returnProductOrdersDate?: string | undefined;
                bables?: string[] | undefined;
            } | undefined;
            error?: boolean | undefined;
            errorText?: string | undefined;
            additionalErrors?: string[] | null | undefined;
        }, void>>;
        v1TemplatesList: (query: {
            templateType: number;
        }, params?: RequestParams) => Promise<HttpResponse<Response200 | ResponseErrorTemplate, void>>;
        v1TemplatesCreate: (data: {
            name: string;
            templateType: number;
            text: string;
        }, params?: RequestParams) => Promise<HttpResponse<PostTemplateOK | ResponseErrorTemplate, void>>;
        v1TemplatesPartialUpdate: (data: {
            name: string;
            templateID: string;
            text: string;
        }, params?: RequestParams) => Promise<HttpResponse<PatchDelRespOK | ResponseErrorTemplate, void>>;
        v1TemplatesDelete: (data: {
            templateID: string;
        }, params?: RequestParams) => Promise<HttpResponse<PatchDelRespOK | ResponseErrorTemplate, void>>;
    };
}
export {};
//# sourceMappingURL=feedbacks-questions.d.ts.map