import type { AxiosRequestConfig } from "axios";
import { CodemaoUserSex } from "./user/codemao-user-sex";
export type UserProfileObject = {
    id: number;
    nickname: string;
    avatar_url: string;
    fullname: string;
    sex: number;
    birthday: number;
    qq: string;
    description: string;
    grade: number;
    programmingBasics: number;
    robotBasics: number;
    operatingSystem: string[];
    parentalExpectation: string[];
    parentalExpectationInput: string;
    grade_desc: string;
};
export type ThisUserDetailObject = {
    id: `${number}`;
    nickname: string;
    avatar_url: string;
    email: string;
    gold: number;
    qq: string;
    real_name: string;
    sex: "MALE" | "FEMALE";
    username: string;
    voice_forbidden: boolean;
    birthday: number;
    description: string;
    phone_number: string;
    create_time: number;
    oauths: {
        id: number;
        name: string;
        is_bound: boolean;
    }[];
    has_password: boolean;
    user_type: number;
    show_guide_flag: number;
    has_signed: false;
    has_seen_primary_course: number;
    author_level: number;
};
export type UserDetailObject = {
    user: {
        id: number;
        nickname: string;
        sex: CodemaoUserSex;
        description: string;
        doing: string;
        level: number;
        avatar: string;
    };
    collectionTimes: number;
    forkedTimes: number;
    praiseTimes: number;
    viewTimes: number;
};
export type UserHonorObject = {
    user_id: number;
    nickname: string;
    avatar_url: string;
    user_cover: string;
    user_description: string;
    doing: string;
    attention_status: boolean;
    block_total: number;
    re_created_total: number;
    attention_total: number;
    fans_total: number;
    collected_total: number;
    collect_times: number;
    liked_total: number;
    view_times: number;
    author_level: number;
    consume_level: number;
    is_official_certification: number;
    subject_id: number;
    work_shop_name: string;
    work_shop_level: number;
    like_score: number;
    collect_score: number;
    fork_score: number;
    head_frame_type: number;
    head_frame_name: string;
    head_frame_url: string;
    small_head_frame_url: string;
};
export type WorkInfoObject = {
    id: number;
    work_name: string;
    type: string;
    ide_type: string;
    operation: string;
    description: string;
    orientation: number;
    parent_id: number;
    parent_user_name: string;
    player_url: string;
    share_url: string;
    unify_share_url: string;
    n_tree_nodes: number;
    view_times: number;
    praise_times: number;
    collect_times: number;
    share_times: number;
    fork_enable: boolean;
    fork_scope: number;
    preview: string;
    bcm_version: string;
    bcm_url: string;
    screenshot_cover_url: string;
    n_roles: number;
    n_brick: number;
    comment_times: number;
    publish_time: number;
    user_info: {
        id: number;
        avatar: string;
        nickname: string;
        fork_user: boolean;
        description: string;
        author_level: number;
        consume_level: number;
        is_official_certification: number;
        head_frame_type: number;
        head_frame_name: string;
        head_frame_url: string;
        small_head_frame_url: string;
    };
    abilities: {
        is_collected: boolean;
        is_praised: boolean;
        is_owned: boolean;
    };
    work_label_list: {
        label_type: string;
        label_id: number;
        label_name: string;
    }[];
    player_display_type: number;
};
export type WorkDetailObject = {
    ide_type: string;
    isOwner: boolean;
    isPublish: boolean;
    isFork: boolean;
    isCollection: boolean;
    isPraise: boolean;
    isAttentionUser: boolean;
    ideUrl: string;
    allowFork: number;
    workInfo: {
        id: number;
        user_id: number;
        description: string;
        name: string;
        preview: string;
        praise_times: number;
        collection_times: number;
        fork_times: number;
        view_times: number;
        publish_time: number;
        create_time: number;
        is_old: number;
        isallow_fork: number;
        type: number;
        sub_config: string;
    };
    userInfo: {
        id: number;
        nickname: string;
        sex: number;
        avatar: string;
        description: string;
    };
    workLabel: {
        id: number;
        name: string;
        type: string;
    }[];
    workDisplayUrl: string;
    qrcodeUrl: string;
};
export type NemoWorkPublicResourceObject = {
    bcm_version: string;
    n_likes: number;
    name: string;
    preview: string;
    view_times: number;
    work_id: number;
    work_urls: string[];
    user: {
        avatar_url: string;
        id: number;
        nickname: string;
    };
};
export type KittenWorkPublicResourceObject = {
    name: string;
    preview: string;
    source_urls: string[];
    is_bcmc: boolean;
    ide_type: string;
    updated_time: number;
    version: string;
};
export type KittenNWorkPublicResourceObject = {
    name: string;
    source_urls: string[];
    bcm_url: string;
    bcm_version: `${number}.${number}.${number}`;
    preview_url: string;
    update_time: number;
    author_id: `${number}`;
    hardware_mode: number;
    blink_mode: string;
};
/**
 * https://api.codemao.cn/coconut/clouddb/currentTime
 */
export declare function getCurrentTime(): Promise<number>;
/**
 * 获取本地时间与 {@link getCurrentTime} 的差异
 */
export declare function getTimeDifference(): Promise<number>;
/**
 * 获取通过 {@link getTimeDifference} 校准过的时间戳
 */
export declare function getCalibratedTimestamp(): Promise<number>;
export declare function getSignUUID(): string;
export declare function getClientID(): string;
export declare function setXCreationToolsDeviceAuth(argument: AxiosRequestConfig): Promise<AxiosRequestConfig>;
/**
 * https://api.codemao.cn/tiger/v3/web/accounts/profile
 *
 * @param authorization 用户凭证，留空则使用默认 Cookie
 *
 * @returns 用户信息
 */
export declare function getUserProfile(authorization?: string | null): Promise<UserProfileObject>;
/**
 * https://api.codemao.cn/web/users/details
 *
 * 用户被封号时该 API 不可用。
 *
 * @param authorization 用户凭证，留空则使用默认 Cookie
 */
export declare function getThisUserDetail(authorization?: string | null): Promise<ThisUserDetailObject>;
/**
 * https://api.codemao.cn/api/user/info/detail/${userID}
 */
export declare function getUserDetail(userID: number): Promise<UserDetailObject>;
/**
 * https://api.codemao.cn/creation-tools/v1/user/center/honor?user_id=${userID}
 */
export declare function getUserHonor(userID: number): Promise<UserHonorObject>;
/**
 * https://api.codemao.cn/creation-tools/v1/works/${workID}
 */
export declare function getWorkInfo(workID: number): Promise<WorkInfoObject>;
/**
 * https://api.codemao.cn/api/work/info/${workID}
 */
export declare function getWorkDetail(workID: number): Promise<WorkDetailObject>;
/**
 * https://api.codemao.cn/creation-tools/v1/works/${workID}/source/public
 */
export declare function getNemoWorkPublicResource(workID: number): Promise<NemoWorkPublicResourceObject>;
/**
 * https://api-creation.codemao.cn/kitten/r2/work/player/load/${workID}
 */
export declare function getKittenWorkPublicResource(workID: number): Promise<KittenWorkPublicResourceObject>;
/**
 * https://api-creation.codemao.cn/neko/community/player/published-work-detail/${workID}
 */
export declare function getKittenNWorkPublicResource(workID: number): Promise<KittenNWorkPublicResourceObject>;
