import { OutputFormat } from '../handlers/base.handler';
export type LotteryCondition = 'none' | 'invite' | 'duration' | 'comment' | 'question';
export interface ReceiveInfoItem {
    type: 'userName' | 'userPhone' | 'custom';
    field: string;
    tips: string;
    required: boolean;
}
export interface LotteryCreateOptions {
    channelId: string;
    name: string;
    type: LotteryCondition;
    amount: number;
    prizeName: string;
    receiveInfo?: string;
    duration?: number;
    inviteNum?: number;
    comment?: string;
    output?: OutputFormat;
    force?: boolean;
}
export interface LotteryListOptions {
    channelId: string;
    page?: number;
    size?: number;
    output?: OutputFormat;
}
export interface LotteryGetOptions {
    channelId: string;
    id: string;
    output?: OutputFormat;
}
export interface LotteryUpdateOptions {
    channelId: string;
    id: string;
    name?: string;
    amount?: number;
    prizeName?: string;
    output?: OutputFormat;
    force?: boolean;
}
export interface LotteryDeleteOptions {
    channelId: string;
    id: string;
    output?: OutputFormat;
    force?: boolean;
}
export interface LotteryWinnersOptions {
    channelId: string;
    lotteryId: string;
    viewerId?: string;
    page?: number;
    limit?: number;
    output?: OutputFormat;
}
export interface LotteryRecordsOptions {
    channelId: string;
    startTime: number;
    endTime: number;
    sessionId?: string;
    page?: number;
    limit?: number;
    output?: OutputFormat;
}
export interface LotteryLegacyRecordsOptions {
    channelId: string;
    startTime: number;
    endTime: number;
    sessionId?: string;
    page?: number;
    limit?: number;
    output?: OutputFormat;
}
export interface LotteryChannelRecordsOptions {
    channelIds: string[];
    startTime: number;
    endTime: number;
    sessionId?: string;
    page?: number;
    limit?: number;
    output?: OutputFormat;
}
export interface LotteryDownloadWinnersOptions {
    channelId: string;
    lotteryId: string;
    output?: OutputFormat;
}
export interface LotteryReceiveInfoOptions {
    channelId: string;
    lotteryId: string;
    winnerCode: string;
    viewerId: string;
    receiveInfo?: string | Record<string, unknown> | unknown[];
    force?: boolean;
    output?: OutputFormat;
}
export interface LotteryServiceConfig {
    baseUrl: string;
    timeout: number;
    debug: boolean;
}
export interface CreateLotteryActivityParams {
    channelId: string;
    activityName: string;
    lotteryCondition: LotteryCondition;
    amount: number;
    prizeName: string;
    receiveEnabled?: string;
    receiveInfo?: string;
    duration?: number;
    inviteNum?: number;
    comment?: string;
}
export interface ListLotteryActivitiesParams {
    channelId: string;
    pageNumber?: number;
    pageSize?: number;
}
export interface GetLotteryActivityParams {
    channelId: string;
    id: string;
}
export interface UpdateLotteryActivityParams {
    channelId: string;
    id: string;
    activityName?: string;
    amount?: number;
    prizeName?: string;
}
export interface DeleteLotteryActivityParams {
    channelId: string;
    id: string;
}
export interface GetWinnerDetailParams {
    channelId: string;
    lotteryId: string;
    viewerId?: string;
    page?: number;
    limit?: number;
}
export interface ListLotteryRecordsParams {
    channelId: string;
    startTime: number;
    endTime: number;
    sessionId?: string;
    page?: number;
    limit?: number;
}
export interface ListChannelsLotteryParams {
    channelIds: string[];
    startTime: number;
    endTime: number;
    sessionId?: string;
    page?: number;
    limit?: number;
}
export interface DownloadWinnerDetailParams {
    channelId: string;
    lotteryId: string;
}
export interface AddReceiveInfoV4Params {
    channelId: string;
    lotteryId: string;
    winnerCode: string;
    viewerId: string;
    receiveInfo?: Record<string, unknown> | unknown[];
}
//# sourceMappingURL=lottery.d.ts.map