export interface SmuleUserSongData {
    user?: SmuleUserData;
    last_updated?: Date;
    base_url?: string;
    base_path?: string;
    chanel_songs?: PerformanceData[];
    fav_songs?: PerformanceData[];
}
export interface SmuleChanelData {
    list?: PerformanceData[];
    next_offset?: number;
}
export interface PerformanceData {
    key?: string;
    performance_key?: string;
    join_link?: null;
    type?: Type;
    title?: string;
    artist?: string;
    message?: null | string;
    created_at?: Date;
    expire_at?: Date | null;
    seed?: boolean;
    closed?: boolean;
    ensemble_type?: EnsembleType;
    child_count?: number;
    app_uid?: AppUid;
    arr_type?: null;
    arr_key?: string;
    song_id?: null;
    song_length?: null;
    perf_status?: PerfStatus;
    artist_twitter?: null;
    orig_track_city?: City;
    media_url?: string;
    video_media_url?: null | string;
    video_media_mp4_url?: null | string;
    cover_url?: string;
    web_url?: string;
    song_info_url?: null;
    stats?: Stats;
    performed_by?: string;
    performed_by_url?: string;
    owner?: User;
    other_performers?: User[];
    duet?: User | null;
    other?: Other;
    featured?: boolean;
    rm?: null;
    private?: boolean;
    joins: PerformanceData[];
    smule_media_url?: string;
    need_refresh?: boolean;
    audio_path?: string;
    video_path?: string;
    audio_url?: string;
    video_url?: string;
}
export declare enum AppUid {
    Sing = "sing",
    SingGoogle = "sing_google"
}
export interface User {
    account_id?: number;
    handle?: string;
    pic_url?: string;
    url?: string;
    is_vip?: boolean;
    is_verified?: boolean;
    verified_type?: VerifiedType;
    lat?: number;
    lon?: number;
}
export declare enum VerifiedType {
    Unverified = "unverified",
    VerifiedBasic = "verified_basic"
}
export declare enum EnsembleType {
    Duet = "DUET",
    Group = "GROUP",
    Solo = "SOLO",
    CFire = "CFIRE"
}
export interface City {
    city?: string;
    country?: string;
}
export interface Other {
    pic_url?: null | string;
    url?: string | null;
    verified_type?: VerifiedType;
    label?: string;
    vip?: boolean;
    id?: number | null;
    verified_urls?: null;
}
export declare enum PerfStatus {
    C = "c",
    N = "n",
    E = "e"
}
export interface Stats {
    total_performers?: number;
    truncated_other_performers?: string;
    total_listens?: number;
    truncated_listens?: string;
    total_loves?: number;
    truncated_loves?: string;
    total_comments?: number;
    truncated_comments?: string;
    total_commenters?: number;
}
export declare enum Type {
    Audio = "audio",
    Video = "video"
}
export interface SmuleUserIdData {
    account_id?: number | null;
    handle?: string;
}
export interface SmuleUserData {
    account_id?: number;
    handle?: string;
    first_name?: string;
    last_name?: string;
    location?: string;
    pic_url?: string;
    url?: string;
    followers?: string;
    followees?: string;
    num_performances?: string;
    blurb?: string;
    is_following?: boolean;
    is_vip?: boolean;
    is_verified?: boolean;
    verified_type?: string;
    sfam_count?: number;
}
