import { AuthConfig } from '../types/auth';
import { ViewerServiceConfig } from '../types/viewer';
import type { GetViewerRecordParams, ViewerRecord, ListViewerRecordsParams, ListViewerRecordsResponse, CreateViewerRecordParams, UpdateViewerRecordParams, DeleteViewerRecordParams, ImportExternalViewerParams, ImportExternalViewerResponse, UpdateViewerUserSystemConfigParams, ListViewerLabelsResponse, CreateViewerLabelParams, CreateViewerLabelResponse, UpdateViewerLabelParams, DeleteViewerLabelParams, ListLabelsParams, ListLabelsResponse, CreateLabelParams, CreateLabelResponse, UpdateLabelParams, DeleteLabelParams, AddChannelLabelRefsParams, ViewerLotteryWinParams, ViewerLotteryWinResponse } from 'polyv-live-api-sdk';
export interface BatchOperationResult {
    viewerUnionId: string;
    labelId: number;
    success: boolean;
    error?: string;
}
export interface BatchOperationSummary {
    total: number;
    succeeded: number;
    failed: number;
    results: BatchOperationResult[];
}
export declare class ViewerServiceSdk {
    private readonly client;
    private readonly v4User;
    constructor(authConfig: AuthConfig, _serviceConfig?: ViewerServiceConfig);
    getViewerRecord(params: GetViewerRecordParams): Promise<ViewerRecord>;
    listViewerRecords(params: ListViewerRecordsParams): Promise<ListViewerRecordsResponse>;
    createViewerRecord(params: CreateViewerRecordParams): Promise<ViewerRecord>;
    updateViewerRecord(params: UpdateViewerRecordParams & Record<string, unknown>): Promise<void>;
    deleteViewerRecord(params: DeleteViewerRecordParams): Promise<void>;
    importExternalViewer(params: ImportExternalViewerParams): Promise<ImportExternalViewerResponse>;
    updateViewerUserSystemConfig(params: UpdateViewerUserSystemConfigParams): Promise<void>;
    listViewerLabels(): Promise<ListViewerLabelsResponse>;
    createViewerLabel(params: CreateViewerLabelParams): Promise<CreateViewerLabelResponse>;
    updateViewerLabel(params: UpdateViewerLabelParams): Promise<void>;
    deleteViewerLabel(params: DeleteViewerLabelParams): Promise<void>;
    listLabels(params: ListLabelsParams): Promise<ListLabelsResponse>;
    createLabel(params: CreateLabelParams): Promise<CreateLabelResponse>;
    updateLabel(params: UpdateLabelParams): Promise<void>;
    deleteLabel(params: DeleteLabelParams): Promise<void>;
    addChannelLabelRefs(params: AddChannelLabelRefsParams): Promise<void>;
    viewerLotteryWin(params: ViewerLotteryWinParams): Promise<ViewerLotteryWinResponse>;
    addViewersLabels(viewerUnionIds: string[], labelIds: number[], onProgress?: (completed: number, total: number) => void): Promise<BatchOperationSummary>;
    removeViewersLabels(viewerUnionIds: string[], labelIds: number[], onProgress?: (completed: number, total: number) => void): Promise<BatchOperationSummary>;
    private executeBatchOperation;
    private delay;
    private wrapError;
}
//# sourceMappingURL=viewer-service.d.ts.map