/** 工蜂用户信息 */
export interface TGitUser {
    id: number;
    username: string;
    name?: string;
    [k: string]: unknown;
}
/**
 * 根据用户 ID 获取工蜂用户信息
 *
 * 对应工蜂 API：GET /api/v3/users/:id
 *
 * 应用场景：Webhook payload 中 `author.username` 可能不是标准 RTX，
 * 此时可以通过 `author_id` 反查拿到准确的 username。
 *
 * @param {object} options 输入配置
 * @param {number | string} options.userId 用户 ID
 * @param {string} options.privateToken 密钥
 * @param {string} [options.baseUrl] baseUrl
 * @returns {Promise<TGitUser | null>} 用户信息，失败或缺字段返回 null
 * @example
 *
 * getUserById({
 *   userId: 12345,
 *   privateToken: 'xxxxx',
 * }).then((user) => {
 *   console.log(user?.username);
 * })
 */
export declare function getUserById({ userId, privateToken, baseUrl, }: {
    userId: number | string;
    privateToken: string;
    baseUrl?: string;
}): Promise<TGitUser | null>;
/**
 * 根据用户名（英文名 / RTX）获取工蜂用户信息
 *
 * 对应工蜂 API：GET /api/v3/users?search=:username
 * 搜索接口可能返回多条结果，本函数会精确匹配 `username`，不命中返回 null。
 *
 * @param {object} options 输入配置
 * @param {string} options.username 用户名
 * @param {string} options.privateToken 密钥
 * @param {string} [options.baseUrl] baseUrl
 * @returns {Promise<number | null>} 用户 ID
 * @example
 *
 * getUserIdByUsername({
 *   username: 'novlan1',
 *   privateToken: 'xxxxx',
 * }).then((userId) => {
 *   console.log(userId); // 未命中返回 null
 * })
 */
export declare function getUserIdByUsername({ username, privateToken, baseUrl, }: {
    username: string;
    privateToken: string;
    baseUrl?: string;
}): Promise<number | null>;
/**
 * 批量将用户名列表转换为用户 ID 列表（跳过找不到的）
 *
 * @param {object} options 输入配置
 * @param {string[]} options.usernames 用户名数组
 * @param {string} options.privateToken 密钥
 * @param {string} [options.baseUrl] baseUrl
 * @returns {Promise<string[]>} 用户 ID 字符串数组（顺序与输入保持一致，跳过缺失项）
 * @example
 *
 * resolveUserIds({
 *   usernames: ['novlan1', 'someone'],
 *   privateToken: 'xxxxx',
 * }).then((ids) => {
 *   console.log(ids); // [ '1234', '5678' ]
 * })
 */
export declare function resolveUserIds({ usernames, privateToken, baseUrl, }: {
    usernames: string[];
    privateToken: string;
    baseUrl?: string;
}): Promise<string[]>;
