import { PartialChannel } from "./channel";
import { ChzzkClient } from "../client";
export interface BaseLive {
    liveTitle: string;
    liveImageUrl: string;
    defaultThumbnailImageUrl?: string;
    concurrentUserCount: number;
    accumulateCount: number;
    openDate: string;
    liveId: number;
    adult: boolean;
    tags: string[];
    chatChannelId: string;
    categoryType?: string;
    liveCategory?: string;
    liveCategoryValue?: string;
    livePlayback: LivePlayback;
    channel: PartialChannel;
}
export interface Live extends BaseLive {
    channelId: string;
}
export interface LivePlayback {
    meta: {
        videoId: string;
        streamSeq: number;
        liveId: string;
        paidLive: boolean;
        cdnInfo: {
            cdnType: string;
            zeroRating: boolean;
        };
        p2p: boolean;
    };
    serviceMeta: {
        contentType: string;
    };
    live: {
        start: string;
        open: string;
        timeMachine: boolean;
        status: string;
    };
    api: {
        name: string;
        path: string;
    }[];
    media: Media[];
    thumbnail: {
        snapshotThumbnailTemplate: string;
        types: string[];
    };
    multiview: [];
}
export interface Media {
    mediaId: string;
    protocol: string;
    path: string;
    encodingTrack: (VideoEncodingTrack | AudioEncodingTrack)[];
}
export interface EncodingTrack {
    encodingTrackId: string;
    audioBitRate: number;
    audioSamplingRate: number;
    audioChannel: number;
    avoidReencoding: boolean;
    audioOnly: boolean;
}
export interface VideoEncodingTrack extends EncodingTrack {
    videoProfile: string;
    audioProfile: string;
    videoCodec: string;
    videoBitRate: number;
    videoFrameRate: string;
    videoWidth: number;
    videoHeight: number;
    videoDynamicRange: string;
    audioOnly: false | undefined;
}
export interface AudioEncodingTrack extends EncodingTrack {
    encodingTrackId: "alow.stream";
    path: string;
    audioCodec: string;
    audioOnly: true;
}
export interface LiveStatus {
    liveTitle: string;
    status: "OPEN" | "CLOSE";
    concurrentUserCount: number;
    accumulateCount: number;
    paidPromotion: boolean;
    adult: boolean;
    krOnlyViewing: boolean;
    chatChannelId: string;
    tags: string[];
    categoryType: string;
    liveCategory?: string;
    liveCategoryValue?: string;
    livePollingStatus: LivePollingStatus;
    faultStatus?: string;
    userAdultStatus?: string;
    blindType?: string;
    chatActive: boolean;
    chatAvailableGroup: string;
    chatAvailableCondition: string;
    minFollowerMinute: number;
    chatDonationRankingExposure: boolean;
    dropsCampaignNo?: string;
    liveTokenList: string[];
}
export interface LivePollingStatus {
    status: string;
    isPublishing: boolean;
    playableStatus: string;
    trafficThrottling: number;
    callPeriodMilliSecond: number;
}
export interface LiveDetail extends BaseLive {
    status: "OPEN" | "CLOSE";
    closeDate?: string;
    clipActive: boolean;
    chatActive: boolean;
    chatAvailableGroup: string;
    paidPromotion: boolean;
    chatAvailableCondition: string;
    minFollowerMinute: number;
    p2pQuality: string[];
    livePollingStatus: LivePollingStatus;
    userAdultStatus?: string;
    chatDonationRankingExposure: boolean;
    adParameter: {
        tag: string;
    };
    dropsCampaignNo?: string;
}
export declare class ChzzkLive {
    private client;
    constructor(client: ChzzkClient);
    status(channelId: string): Promise<LiveStatus>;
    detail(channelId: string): Promise<LiveDetail>;
}
