import { CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, ResponseList, ResponseObject, Status } from '../core'; import { SourceFilesModel } from '../sourceFiles'; export declare class Bundles extends CrowdinApi { /** * @requiredScope project.translation:read * @param projectId project identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.getMany */ listBundles(projectId: number, options?: PaginationOptions): Promise>; /** * @requiredScope project.source.file:write * @param projectId project identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.post */ addBundle(projectId: number, request: BundlesModel.CreateBundleRequest): Promise>; /** * @requiredScope project.source.file:read * @param projectId project identifier * @param bundleId bundle identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.get */ getBundle(projectId: number, bundleId: number): Promise>; /** * @requiredScope project.source.file:write * @param projectId project identifier * @param bundleId bundle identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.delete */ deleteBundle(projectId: number, bundleId: number): Promise; /** * @requiredScope project.source.file:write * @param projectId project identifier * @param bundleId bundle identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.patch */ editBundle(projectId: number, bundleId: number, request: PatchRequest[]): Promise>; /** * @requiredScope project.translation:read * @param projectId project identifier * @param bundleId bundle identifier * @param exportId export identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.exports.download.get */ downloadBundle(projectId: number, bundleId: number, exportId: string): Promise>; /** * @requiredScope project.translation:read * @param projectId project identifier * @param bundleId bundle identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.exports.post */ exportBundle(projectId: number, bundleId: number, request?: BundlesModel.ExportBundleRequest): Promise>>; /** * @requiredScope project.translation:read * @param projectId project identifier * @param bundleId bundle identifier * @param exportId export identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.exports.get */ checkBundleExportStatus(projectId: number, bundleId: number, exportId: string): Promise>>; /** * @requiredScope project.source.file:read * @param projectId project identifier * @param bundleId bundle identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.bundles.files.getMany */ listBundleFiles(projectId: number, bundleId: number, options?: PaginationOptions): Promise>; /** * @requiredScope project.source.file:read * @param projectId project identifier * @param bundleId bundle identifier * @param options optional parameters for the request * @see https://support.crowdin.com/developer/api/v2/string-based/#tag/Translations/operation/api.projects.bundles.branches.getMany */ listBundleBranches(projectId: number, bundleId: number, options?: PaginationOptions): Promise>; } export declare namespace BundlesModel { interface Bundle { id: number; name: string; format: string | null; sourcePatterns: string[]; ignorePatterns: string[]; exportPattern: string | null; isMultilingual: boolean; includeProjectSourceLanguage: boolean; includeInContextPseudoLanguage: boolean; sourceLanguageExportPattern: string; labelMatchRule: LabelMatchRule | null; excludeLabelMatchRule: LabelMatchRule | null; labelIds: number[]; excludeLabelIds: number[]; languageIds: string[] | null; createdAt: string; webUrl: string; updatedAt: string; } interface CreateBundleRequest { name: string; format?: string; sourcePatterns: string[]; ignorePatterns?: string[]; exportPattern?: string | null; isMultilingual?: boolean; includeProjectSourceLanguage?: boolean; sourceLanguageExportPattern?: string; includeInContextPseudoLanguage?: boolean; labelIds?: number[]; excludeLabelIds?: number[]; labelMatchRule?: LabelMatchRule | null; excludeLabelMatchRule?: LabelMatchRule | null; languageIds?: string[] | null; } type LabelMatchRule = 'all' | 'any'; interface ExportBundleRequest { targetLanguageIds?: string[]; skipUntranslatedStrings?: boolean; skipUntranslatedFiles?: boolean; exportApprovedOnly?: boolean; exportWithMinApprovalsCount?: number; exportStringsThatPassedWorkflow?: boolean; } interface ExportAttributes { bundleId: number; targetLanguageIds?: string[]; skipUntranslatedStrings?: boolean; skipUntranslatedFiles?: boolean; exportApprovedOnly?: boolean; exportWithMinApprovalsCount?: number; exportStringsThatPassedWorkflow?: boolean; } }