import { ProductListRequest, ProductListItem, ProductAddOptions, ProductAddResult, ProductUpdateOptions, ProductDeleteOptions, ProductLibraryListOptions, ProductLibraryCreateOptions, ProductLibraryUpdateOptions, ProductLibraryDeleteOptions, ProductTagListOptions, ProductTagCreateOptions, ProductTagUpdateOptions, ProductTagDeleteOptions, ProductOrderListOptions, ProductOrderGetOptions, ProductOrderBatchStatusOptions } from '../types/product';
import { AuthConfig } from '../types/auth';
import type { UpdateChannelProductEnabledParams, ProductOrder, ListProductOrdersResponse, BatchUpdateOrderStatusResponse, ListProductTagsResponse } from 'polyv-live-api-sdk';
export interface ProductServiceConfig {
    baseUrl: string;
    timeout: number;
    debug: boolean;
}
export declare class ProductServiceSdk {
    private readonly config;
    private readonly authConfig;
    constructor(authConfig: AuthConfig, serviceConfig: ProductServiceConfig);
    listProducts(request?: ProductListRequest): Promise<ProductListItem[]>;
    addProduct(options: ProductAddOptions): Promise<ProductAddResult>;
    updateProduct(options: ProductUpdateOptions): Promise<boolean>;
    deleteProduct(options: ProductDeleteOptions): Promise<boolean>;
    listUserProducts(options?: ProductLibraryListOptions): Promise<import("polyv-live-api-sdk").ListProductsResponse>;
    createUserProduct(options: ProductLibraryCreateOptions): Promise<import("polyv-live-api-sdk").CreateProductResponse>;
    updateUserProduct(options: ProductLibraryUpdateOptions): Promise<void>;
    deleteUserProduct(options: ProductLibraryDeleteOptions): Promise<void>;
    getChannelProductEnabled(channelId: string): Promise<any>;
    updateChannelProductEnabled(options: UpdateChannelProductEnabledParams): Promise<boolean>;
    batchAddChannelProducts(options: any): Promise<any>;
    batchDeleteChannelProducts(options: any): Promise<any>;
    batchShelfChannelProducts(options: any): Promise<any>;
    shelfChannelProduct(options: any): Promise<any>;
    sortChannelProduct(options: any): Promise<any>;
    pushChannelProduct(options: any): Promise<any>;
    cancelPushChannelProduct(options: any): Promise<any>;
    referenceProduct(options: any): Promise<any>;
    listProductTags(options: ProductTagListOptions): Promise<ListProductTagsResponse>;
    createProductTag(options: ProductTagCreateOptions): Promise<import("polyv-live-api-sdk").UserCreateProductTagResponse>;
    updateProductTag(options: ProductTagUpdateOptions): Promise<void>;
    deleteProductTag(options: ProductTagDeleteOptions): Promise<void>;
    listProductOrders(options: ProductOrderListOptions): Promise<ListProductOrdersResponse>;
    getProductOrder(options: ProductOrderGetOptions): Promise<ProductOrder>;
    batchUpdateProductOrderStatus(options: ProductOrderBatchStatusOptions): Promise<BatchUpdateOrderStatusResponse | null>;
    getProductPushRule(options: {
        channelId: string;
    }): Promise<any>;
    updateProductPushRule(options: Record<string, any> & {
        channelId: string;
    }): Promise<void>;
    listChannelProductTags(options: {
        channelId: string;
        page?: number;
        size?: number;
    }): Promise<any>;
    createChannelProductTag(options: {
        channelId: string;
        name: string;
    }): Promise<any>;
    updateChannelProductTag(options: {
        channelId: string;
        id: number;
        name: string;
    }): Promise<void>;
    deleteChannelProductTag(options: {
        channelId: string;
        id: number;
    }): Promise<void>;
    listProductStats(options: {
        channelId: string;
        productId?: string;
        productName?: string;
        sessionId?: string;
        page?: number;
        size?: number;
    }): Promise<any>;
    getProductStatsSummary(options: {
        channelId: string;
        sessionId?: string;
    }): Promise<any>;
    sortChannelProductRank(options: {
        channelId: string;
        productId: number;
        rank: number;
    }): Promise<void>;
    toppingChannelProduct(options: {
        channelId: string;
        productId: number;
    }): Promise<void>;
    untoppingChannelProduct(options: {
        channelId: string;
        productId: number;
    }): Promise<void>;
    private validateListRequest;
    private validateAddOptions;
    private validateUpdateOptions;
    private validateDeleteOptions;
    private validateUserProductOptions;
    private toUserProductParams;
    private parseStringList;
    private parseNumberList;
    private validateChannelId;
    private validatePositiveNumber;
    private compact;
    private handleError;
}
//# sourceMappingURL=product.service.sdk.d.ts.map