export interface ChannelCreateRequest {
    name: string;
    newScene: 'topclass' | 'alone' | 'seminar' | 'train' | 'double' | 'guide';
    template: 'ppt' | 'portrait_ppt' | 'alone' | 'portrait_alone' | 'topclass' | 'portrait_topclass' | 'seminar';
    channelPasswd?: string;
    pureRtcEnabled?: boolean;
    linkMicLimit?: number;
    categoryId?: string;
    startTime?: number;
    endTime?: number;
}
export interface ChannelCreateResponse {
    code: number;
    status: 'success' | 'error';
    message: string;
    data: {
        channelId: string;
        userId: string;
        channelPasswd: string;
        [key: string]: any;
    };
}
export interface ChannelModel {
    channelId: string;
    name: string;
    userId: string;
    channelPasswd: string;
    newScene: string;
    template: string;
    status?: 'live' | 'waiting' | 'end' | 'unStart';
    description?: string;
    maxViewers?: number;
    autoRecord?: boolean;
    createdAt?: Date;
    updatedAt?: Date;
}
export interface ChannelCreateOptions {
    name: string;
    description?: string;
    maxViewers?: number;
    autoRecord?: boolean;
    output?: 'table' | 'json';
    scene?: 'topclass' | 'alone' | 'seminar' | 'train' | 'double' | 'guide';
    template?: 'ppt' | 'portrait_ppt' | 'alone' | 'portrait_alone' | 'topclass' | 'portrait_topclass' | 'seminar';
    password?: string;
}
export interface ChannelValidationError {
    field: string;
    message: string;
    value: any;
    rule: 'required' | 'max_length' | 'min_length' | 'pattern' | 'enum' | 'type';
}
export interface ChannelServiceConfig {
    baseUrl: string;
    timeout: number;
    maxRetries: number;
    debug: boolean;
}
export interface ChannelListRequest {
    page?: number;
    limit?: number;
    categoryId?: string;
    keyword?: string;
    labelId?: string;
}
export interface ChannelListResponse {
    code: number;
    status: 'success' | 'error';
    message: string;
    data: {
        channels: string[];
        total?: number;
        page?: number;
        limit?: number;
    };
}
export interface ChannelListItem {
    channelId: string;
    name: string;
    status: 'live' | 'waiting' | 'end' | 'unStart';
    createdAt: Date;
    scene: string;
    template: string;
    description?: string;
    maxViewers?: number;
}
export interface ChannelListOptions {
    page?: number;
    limit?: number;
    output?: 'table' | 'json';
    categoryId?: string;
    keyword?: string;
    labelId?: string;
}
export interface ChannelDetailRequest {
    channelId: string;
}
export interface UserCategory {
    categoryId: number;
    categoryName: string;
    userId: string;
    rank: number;
}
export interface LabelData {
    id: string;
}
export interface AuthSettings {
    channelId: number;
    userId: string;
    rank: number;
    globalSettingEnabled: 'Y' | 'N';
    enabled: 'Y' | 'N';
    authType: 'none' | 'code' | 'pay' | 'phone' | 'info' | 'wxshare' | 'custom' | 'external' | 'direct';
    authTips: string;
    payAuthTips: string;
    codeAuthTips: string;
    infoAuthTips: string;
    authCode: string;
    qcodeTips: string;
    qcodeImg: string;
    price: number;
    watchEndTime: number | null;
    validTimePeriod: number | null;
    customKey: string;
    customUri: string;
    externalKey: string;
    externalUri: string;
    externalRedirectUri: string;
    directKey: string;
    trialWatchEnabled: 'Y' | 'N';
    trialWatchTime: number | null;
    trialWatchEndTime: number | null;
    whiteListInputTips: string;
    whiteListEntryText: string;
    infoDesc: string;
    customTeacherId?: string;
    expectedArrivalEnabled?: 'Y' | 'N';
}
export interface ChannelDetailModel {
    channelId: number;
    name: string;
    scene: string;
    newScene: string;
    template: string;
    channelPasswd: string;
    publisher: string;
    startTime: number;
    endTime: number;
    pureRtcEnabled?: 'Y' | 'N';
    pageView: number;
    likes: number;
    coverImg: string;
    splashImg: string;
    splashEnabled: 'Y' | 'N';
    bgImg: string | null;
    desc: string;
    consultingMenuEnabled: 'Y' | 'N';
    maxViewerRestrict: 'Y' | 'N';
    maxViewer: number;
    watchStatus: 'live' | 'playback' | 'end' | 'waiting' | 'unStart' | 'banpush';
    watchStatusText: string;
    userCategory: UserCategory;
    authSettings: AuthSettings[];
    linkMicLimit: number;
    createdAccountId: string;
    createdAccountEmail: string;
    createdTime: number;
    labelData: string[];
    clientAloneTemplateBackgroundUrl?: string;
    liveCdnBackgroundUrl?: string;
    pushUrl?: string;
    pushSecret?: string;
    streamType?: string;
    onlyOutEnabled?: 'Y' | 'N';
}
export interface ChannelDetailResponse {
    code: number;
    status: 'success' | 'error';
    message?: string;
    requestId?: string;
    success: boolean;
    data: ChannelDetailModel;
    error?: {
        code: number;
        desc: string;
    };
}
export interface ChannelGetOptions {
    channelId: string;
    output?: 'table' | 'json';
}
export interface BasicSetting {
    name?: string;
    channelPasswd?: string;
    publisher?: string;
    desc?: string;
    startTime?: number;
    endTime?: number;
    pageView?: number;
    likes?: number;
    maxViewer?: number;
    maxViewerRestrict?: 'Y' | 'N';
    closeDanmu?: 'Y' | 'N';
    coverImg?: string;
    splashImg?: string;
}
export interface ChannelUpdateRequest {
    channelId: string;
    basicSetting?: BasicSetting;
    authSettings?: AuthSettings[];
}
export interface ChannelUpdateOptions {
    channelId: string;
    name?: string;
    description?: string;
    publisher?: string;
    password?: string;
    maxViewers?: number;
    autoRecord?: boolean;
    startTime?: number;
    endTime?: number;
    pageView?: number;
    likes?: number;
    coverImg?: string;
    splashImg?: string;
    output?: 'table' | 'json';
}
export interface ChannelUpdateResponse {
    code: number;
    status: 'success' | 'error';
    message?: string;
    requestId?: string;
    success: boolean;
    data: string | null;
    error?: {
        code: number;
        desc: string;
    };
}
export interface ChannelDeleteRequest {
    channelIds: string[];
}
export interface ChannelDeleteResponse {
    code: number;
    status: 'success' | 'error';
    message?: string;
    data: boolean | string;
}
export interface ChannelDeleteOptions {
    channelId: string;
    force?: boolean;
    output?: 'table' | 'json';
}
export interface ConfirmationResponse {
    confirmed: boolean;
    input?: string;
}
export interface ChannelBatchDeleteRequest extends ChannelDeleteRequest {
}
export interface ChannelBatchDeleteResponse extends ChannelDeleteResponse {
}
//# sourceMappingURL=channel.d.ts.map