/**
 * 获取仓库详情
 * @param {object} options 输入配置
 * @param {string} options.projectName 项目名称
 * @param {string} options.privateToken 密钥
 * @returns {Promise<object>} 请求Promise
 * @example
 * getOneProjectDetail({
 *   projectName: 't-comm',
 *   privateToken: 'xxxxx',
 * }).then((resp) => {
 *
 * })
 */
export declare function getOneProjectDetail({ projectName, privateToken, baseUrl, }: {
    projectName: string | number;
    privateToken: string;
    baseUrl?: string;
}): Promise<unknown>;
/**
 * 通过搜索获取一个项目信息
 * @param {object} options 输入配置
 * @param {string} options.search 搜索内容
 * @param {string} options.page 起始页码
 * @param {string} options.privateToken 密钥
 * @returns {Promise<Array<object>>} 请求Promise
 * @example
 *
 * getOneProjectBySearch({
 *   search: 't-comm',
 *   page: 1,
 *   privateToken: 'xxxxx',
 * }).then((resp) => {
 *
 * })
 */
export declare function getOneProjectBySearch({ search, privateToken, page, baseUrl, }: {
    search: string;
    privateToken: string;
    page?: number;
    baseUrl?: string;
}): Promise<Array<object>>;
/**
 * 获取某个token名下所有项目
 * @param {string} privateToken 密钥
 * @param {string} search 搜索内容
 * @returns {Array<object>} 项目列表
 * @example
 *
 * const projects = await getAllProjects('xxxxx');
 *
 * console.log(projects)
 */
export declare function getAllProjects(privateToken: string, search?: string): Promise<Array<object>>;
/**
 * 删除一个项目
 * @param {object} options 输入配置
 * @param {string} options.id 项目id
 * @param {string} options.privateToken 密钥
 * @returns {Promise<Array<object>>} 请求Promise
 * @example
 *
 * deleteTGitProject({
 *   id: '123'
 *   privateToken: 'xxxxx',
 * }).then((resp) => {
 *
 * })
 */
export declare function deleteTGitProject({ id, privateToken, baseUrl, }: {
    id: number | string;
    privateToken: string;
    baseUrl?: string;
}): Promise<Array<object>>;
/**
 * 解析工蜂项目的路径或完整 URL，提取出标准的 `group/sub/repo` 形式路径
 *
 * 支持的输入格式：
 *   - 完整 URL：           https://git.woa.com/pmd-mobile/pmd-h5/press-next
 *   - 带 .git 后缀：       https://git.woa.com/pmd-mobile/pmd-h5/press-next.git
 *   - SSH 地址：           git@git.woa.com:pmd-mobile/pmd-h5/press-next.git
 *   - 纯路径：             pmd-mobile/pmd-h5/press-next
 *   - 带首尾斜杠的路径：    /pmd-mobile/pmd-h5/press-next/
 *
 * @param {string} pathOrUrl 项目路径或 URL
 * @returns {string} 标准化后的项目路径（如 pmd-mobile/pmd-h5/press-next）
 * @example
 *
 * parseProjectPath('https://git.woa.com/pmd-mobile/pmd-h5/press-next.git')
 * // => 'pmd-mobile/pmd-h5/press-next'
 */
export declare function parseProjectPath(pathOrUrl: string): string;
/** 命名空间信息 */
export interface TGitNamespace {
    id: number;
    name: string;
    path: string;
    owner_id: number;
    description: string | null;
    created_at: string;
    updated_at: string;
    [k: string]: unknown;
}
/** 用户简要信息（owner / suggestion_reviewers / necessary_reviewers 等） */
export interface TGitUserBrief {
    id: number;
    username: string;
    name: string;
    state: string;
    web_url: string;
    avatar_url: string | null;
    [k: string]: unknown;
}
/** 仓库存储配置 */
export interface TGitConfigStorage {
    limit_lfs_file_size: number;
    limit_size: number;
    limit_file_size: number;
    limit_lfs_size: number;
    [k: string]: unknown;
}
/** 仓库保密配置 */
export interface TGitConfigConfidential {
    level: number;
    allow_ai_coding_tool: boolean;
    [k: string]: unknown;
}
/** 仓库统计信息 */
export interface TGitProjectStatistics {
    commit_count: number;
    repository_size: number;
    lfs_repository_size: number;
    [k: string]: unknown;
}
/**
 * 项目详情信息（对应工蜂 GET /api/v3/projects/:id 返回）
 *
 * 字段参考工蜂 OpenAPI 文档：
 * - 基础信息：id / name / path / path_with_namespace / default_branch / description ...
 * - 仓库地址：ssh_url_to_repo / http_url_to_repo / https_url_to_repo / web_url
 * - 可见性：public / public_visibility / visibility_level / archived
 * - 关联对象：namespace / owner / suggestion_reviewers / necessary_reviewers
 * - 评审配置：approver_rule / necessary_approver_rule / can_approve_by_creator ...
 * - 功能开关：issues_enabled / merge_requests_enabled / wiki_enabled / review_enabled ...
 * - 存储与统计：config_storage / statistics
 *
 * 同时保留索引签名 `[k: string]: unknown`，兼容工蜂未来扩展的字段。
 */
export interface TGitProjectInfo {
    /** 项目 ID */
    id: number;
    /** 项目描述 */
    description: string | null;
    /** 是否为公开项目 */
    public: boolean;
    /** 是否已归档 */
    archived: boolean;
    /** 可见性级别（0 私有 / 10 内部 / 20 公开） */
    visibility_level: number;
    /** 公开可见性细分 */
    public_visibility: number;
    /** 命名空间 */
    namespace: TGitNamespace;
    /** 项目所有者 */
    owner: TGitUserBrief;
    /** 项目名称（如 test-01） */
    name: string;
    /** 带命名空间的项目名称（如 git_user1/test-01） */
    name_with_namespace: string;
    /** 项目路径（如 test-01） */
    path: string;
    /** 带命名空间的项目路径（如 git_user1/test-01） */
    path_with_namespace: string;
    /** 默认分支名 */
    default_branch: string;
    /** 仓库 SSH 克隆地址 */
    ssh_url_to_repo: string;
    /** 仓库 HTTP 克隆地址 */
    http_url_to_repo: string;
    /** 仓库 HTTPS 克隆地址 */
    https_url_to_repo: string;
    /** 项目 Web 访问地址 */
    web_url: string;
    /** Tag 列表 */
    tag_list: string[];
    /** 是否启用 Issues */
    issues_enabled: boolean;
    /** 是否启用 Merge Requests */
    merge_requests_enabled: boolean;
    /** 是否启用 Wiki */
    wiki_enabled: boolean;
    /** 是否启用 Snippets */
    snippets_enabled: boolean;
    /** 是否启用代码评审 */
    review_enabled: boolean;
    /** 是否允许 Fork */
    fork_enabled: boolean;
    /** Tag 名称正则约束 */
    tag_name_regex: string | null;
    /** 创建/推送 Tag 所需权限级别 */
    tag_create_push_level: number;
    /** 创建时间 */
    created_at: string;
    /** 最后活跃时间 */
    last_activity_at: string;
    /** 创建者 ID */
    creator_id: number;
    /** 项目头像地址 */
    avatar_url: string | null;
    /** 关注数 */
    watchs_count: number;
    /** 收藏数 */
    stars_count: number;
    /** Fork 数 */
    forks_count: number;
    /** 存储配置 */
    config_storage: TGitConfigStorage;
    /** 保密配置 */
    config_confidential: TGitConfigConfidential;
    /** Fork 来源（未 Fork 时为字符串提示） */
    forked_from_project: TGitProjectInfo | string | null;
    /** 仓库统计 */
    statistics: TGitProjectStatistics;
    /** 模板创建来源 ID */
    created_from_id: number | null;
    /** 是否为模板仓库 */
    template_repository: boolean;
    /** 建议评审人列表 */
    suggestion_reviewers: TGitUserBrief[];
    /** 必要评审人列表 */
    necessary_reviewers: TGitUserBrief[];
    /** 路径评审规则原始字符串 */
    path_reviewer_rules: string;
    /** 评审通过规则（1=单人，>=2=多人，-1=全部） */
    approver_rule: number;
    /** 必要评审通过规则 */
    necessary_approver_rule: number;
    /** 是否开启 commit MR 检查 */
    commit_mr_check: boolean;
    /** 是否开启评审检查 */
    review_check: boolean;
    /** 创建者是否可以通过评审 */
    can_approve_by_creator: boolean;
    /** 推送后是否自动创建评审 */
    auto_create_review_after_push: boolean;
    /** 是否禁止修改规则 */
    forbidden_modify_rule: boolean;
    /** 是否在评论中强制添加标签 */
    force_add_labels_in_note: boolean;
    /** 是否开启已解决检查 */
    resolved_check: boolean;
    /** 是否开启 push reset */
    push_reset_enabled: boolean;
    /** MR 模板内容 */
    merge_request_template: string | null;
    /** 文件 owner 路径规则 */
    file_owner_path_rules: string;
    /** 是否允许跳过评审人 */
    allow_skip_reviewer: boolean;
    /** 是否允许跳过 owner */
    allow_skip_owner: boolean;
    /** 是否允许跳过 MR 检查 */
    allow_skip_mr_check: boolean;
    /** 兼容工蜂未来扩展字段 */
    [k: string]: unknown;
}
/**
 * 根据项目路径或 URL 获取项目信息（含 id / name / path_with_namespace）
 *
 * 本函数是 `parseProjectPath` + `getOneProjectDetail` 的便捷封装，
 * 支持与 `parseProjectPath` 相同的输入格式：
 *   - 完整 URL：           https://git.woa.com/pmd-mobile/pmd-h5/press-next
 *   - 带 .git 后缀：       https://git.woa.com/pmd-mobile/pmd-h5/press-next.git
 *   - SSH 地址：           git@git.woa.com:pmd-mobile/pmd-h5/press-next.git
 *   - 纯路径：             pmd-mobile/pmd-h5/press-next
 *
 * @param {object} options 输入配置
 * @param {string} options.pathOrUrl 项目路径或 URL
 * @param {string} options.privateToken 密钥
 * @param {string} [options.baseUrl] baseUrl
 * @returns {Promise<TGitProjectInfo>} 项目信息
 * @example
 *
 * getProjectByPath({
 *   pathOrUrl: 'https://git.woa.com/pmd-mobile/pmd-h5/press-next',
 *   privateToken: 'xxxxx',
 * }).then((info) => {
 *   console.log(info.id, info.path_with_namespace);
 * })
 */
export declare function getProjectByPath({ pathOrUrl, privateToken, baseUrl, }: {
    pathOrUrl: string;
    privateToken: string;
    baseUrl?: string;
}): Promise<TGitProjectInfo>;
/**
 * 创建项目时的请求参数（对应工蜂 POST /api/v3/projects）
 *
 * 字段参考工蜂 OpenAPI 文档：
 * - name           项目名（必填）
 * - path           项目版本库路径，默认 path = name
 * - fork_enabled   是否可被 fork，默认 false
 * - namespace_id   所属命名空间，默认用户命名空间
 * - description    项目描述
 * - visibility_level 可视范围，默认 0
 * - create_from_id 模板项目 ID 或 项目全路径
 */
export interface CreateTGitProjectParams {
    /** 项目名 */
    name: string;
    /** 项目版本库路径，默认与 name 相同 */
    path?: string;
    /** 是否可被 fork，默认 false */
    fork_enabled?: boolean;
    /** 所属命名空间 ID */
    namespace_id?: number;
    /** 项目描述 */
    description?: string;
    /** 项目可视范围（0 私有 / 10 内部 / 20 公开），默认 0 */
    visibility_level?: number;
    /** 模板项目 ID 或项目全路径 */
    create_from_id?: number | string;
    /** 兼容工蜂未来扩展字段 */
    [k: string]: unknown;
}
/**
 * 创建一个项目
 *
 * 对应工蜂 OpenAPI：POST /api/v3/projects
 *
 * 注意：当 `namespace_id` 不为空时，需要用户拥有在指定命名空间中创建项目的权限。
 *
 * @param {object} options 输入配置
 * @param {CreateTGitProjectParams} options.data 创建项目的参数
 * @param {string} options.privateToken 密钥
 * @param {string} [options.baseUrl] baseUrl
 * @returns {Promise<TGitProjectInfo>} 新建项目的详情
 * @example
 *
 * createProject({
 *   data: {
 *     name: 'testapi',
 *     description: '测试项目',
 *     visibility_level: 0,
 *   },
 *   privateToken: 'xxxxx',
 * }).then((info) => {
 *   console.log(info.id, info.path_with_namespace);
 * });
 */
export declare function createProject({ data, privateToken, baseUrl, }: {
    data: CreateTGitProjectParams;
    privateToken: string;
    baseUrl?: string;
}): Promise<TGitProjectInfo>;
/** AI 评审挑剔模式（ai_review_mode） */
export type TGitAiReviewMode = 0 | 1 | 2 | number;
/** AI 评审需要响应的严重等级（intelligent_review_block_severity_level） */
export type TGitAiReviewBlockSeverityLevel = 0 | 1 | 2;
/** AI 评审豁免方向规则项 */
export interface TGitAiReviewExemptionDirection {
    sourceBranchRegex: string;
    targetBranchRegex: string;
}
/**
 * 修改项目时的请求参数（对应工蜂 PUT /api/v3/projects/:id）
 *
 * 字段参考工蜂 OpenAPI 文档（均为可选）：
 * - 基础信息：name / description / default_branch / fork_enabled / visibility_level
 * - 存储限制：limit_file_size / limit_lfs_file_size
 * - 功能开关：issues_enabled / merge_requests_enabled / wiki_enabled / review_enabled
 * - tag 规则：tag_name_regex / tag_create_push_level
 * - 模板：template_repository
 * - MR 跳过规则：allow_skip_reviewer / allow_skip_owner / allow_skip_mr_check
 * - 评审 / AI：review_approval_requires_reason / auto_intelligent_review_enabled ...
 *
 * 同时保留索引签名 `[k: string]: unknown`，兼容工蜂未来扩展。
 */
export interface EditTGitProjectParams {
    /** 项目名 */
    name?: string;
    /** 项目描述 */
    description?: string;
    /** 项目默认分支 */
    default_branch?: string;
    /** 项目是否可以被 fork，默认 false */
    fork_enabled?: boolean;
    /** 项目可视范围 */
    visibility_level?: number;
    /** 文件大小限制，单位 MB */
    limit_file_size?: number;
    /** LFS 文件大小限制，单位 MB */
    limit_lfs_file_size?: number;
    /** 议题配置 */
    issues_enabled?: boolean;
    /** 合并请求配置 */
    merge_requests_enabled?: boolean;
    /** 维基配置 */
    wiki_enabled?: boolean;
    /** 评审配置 */
    review_enabled?: boolean;
    /** 推送或创建 tag 规则 */
    tag_name_regex?: string;
    /**
     * 推送或创建 tag 权限：
     * - 0  任何人不能推送或创建 tag
     * - 30 DEVELOPER 以上角色才能推送或创建 tag
     * - 40 MASTER 以上角色才能推送或创建 tag
     */
    tag_create_push_level?: number;
    /** 项目是否设置为模板仓库，默认 false */
    template_repository?: boolean;
    /** 允许使用 --skip-reviewer 在 MR 创建时跳过评审，默认 false */
    allow_skip_reviewer?: boolean;
    /** 允许使用 --skip-owner 在 MR 创建时跳过文件评审，默认 false */
    allow_skip_owner?: boolean;
    /** 紧急情况时允许绕过 MR 检查直接合并，默认 false */
    allow_skip_mr_check?: boolean;
    /** 开启评审同意时必须填写理由，默认 false */
    review_approval_requires_reason?: boolean;
    /** 开启 AI 自动评审，默认 false */
    auto_intelligent_review_enabled?: boolean;
    /** 是否强制 MR 中所有 AI 评论必须被响应，默认 false */
    force_intelligent_review_evaluation?: boolean;
    /** 开启 AI 描述生成，默认 false */
    auto_intelligent_review_description_enabled?: boolean;
    /** 自定义过滤文件类型（正则方式） */
    intelligent_review_exclude_path_rules?: string;
    /** 设置 AI 摘要输出语言（中英文），可选值：zh_CN, en */
    intelligent_language?: 'zh_CN' | 'en' | string;
    /** AI 评审挑剔模式，默认 0 */
    ai_review_mode?: TGitAiReviewMode;
    /** 仅响应命中自定义规则的 AI 评审意见，默认 false */
    intelligent_review_only_block_custom_rules?: boolean;
    /** 仅响应一定严重程度 AI 评审意见，0 全部 / 1 一般和严重 / 2 严重，默认 0 */
    intelligent_review_block_severity_level?: TGitAiReviewBlockSeverityLevel;
    /** 豁免分支方向正则表达式列表 */
    intelligent_review_block_exemption_directions?: TGitAiReviewExemptionDirection[];
    /** 是否启用豁免方向正则表达式，默认 false */
    intelligent_review_block_exemption_directions_enabled?: boolean;
    /** 兼容工蜂未来扩展字段 */
    [k: string]: unknown;
}
/**
 * 修改项目设置
 *
 * 对应工蜂 OpenAPI：PUT /api/v3/projects/:id
 *
 * - 修改成功返回修改后的项目信息（{@link TGitProjectInfo}）
 * - 参数错误返回 400
 *
 * @param {object} options 输入配置
 * @param {string | number} options.id 项目 ID 或项目全路径（如 `group/sub/repo`）
 * @param {EditTGitProjectParams} options.data 修改项目的参数
 * @param {string} options.privateToken 密钥
 * @param {string} [options.baseUrl] baseUrl
 * @returns {Promise<TGitProjectInfo>} 修改后的项目详情
 * @example
 *
 * editProject({
 *   id: 32833,
 *   data: {
 *     name: 'testapp',
 *     review_enabled: true,
 *   },
 *   privateToken: 'xxxxx',
 * }).then((info) => {
 *   console.log(info.name);
 * });
 */
export declare function editProject({ id, data, privateToken, baseUrl, }: {
    id: number | string;
    data: EditTGitProjectParams;
    privateToken: string;
    baseUrl?: string;
}): Promise<TGitProjectInfo>;
