/// /// import { WorkflowStatus } from '@staticcms/core/constants/publishModes'; import { NetlifyAuthenticator } from '@staticcms/core/lib/auth'; import API from './API'; import GitLfsClient from './git-lfs-client'; import type { BackendClass, BackendEntry, ConfigWithDefaults, Credentials, DisplayURL, ImplementationFile, PersistOptions, UnpublishedEntry, User } from '@staticcms/core'; import type { ApiRequest, AsyncLock, Cursor } from '@staticcms/core/lib/util'; import type AssetProxy from '@staticcms/core/valueObjects/AssetProxy'; import type { Semaphore } from 'semaphore'; export default class BitbucketBackend implements BackendClass { lock: AsyncLock; api: API | null; updateUserCredentials: (args: { token: string; refresh_token: string; }) => Promise; options: { proxied: boolean; API: API | null; updateUserCredentials: (args: { token: string; refresh_token: string; }) => Promise; initialWorkflowStatus: WorkflowStatus; }; repo: string; branch: string; apiRoot: string; baseUrl: string; siteId: string; token: string | null; mediaFolder?: string; refreshToken?: string; refreshedTokenPromise?: Promise; authenticator?: NetlifyAuthenticator; _mediaDisplayURLSem?: Semaphore; squashMerges: boolean; cmsLabelPrefix: string; previewContext: string; largeMediaURL: string; _largeMediaClientPromise?: Promise; authType: string; constructor(config: ConfigWithDefaults, options?: {}); status(): Promise<{ auth: { status: boolean; }; api: { status: any; statusPage: string; }; }>; authComponent(): import("react").FC; requestFunction: (req: ApiRequest) => Promise; restoreUser(user: User): Promise<{ name: string; login: string; token: string | {}; avatar_url: string; refresh_token: string | undefined; username: string; display_name: string; nickname: string; links: { avatar: { href: string; }; }; }>; authenticate(state: Credentials): Promise<{ name: string; login: string; token: string | {}; avatar_url: string; refresh_token: string | undefined; username: string; display_name: string; nickname: string; links: { avatar: { href: string; }; }; }>; getRefreshedAccessToken(): Promise | undefined; logout(): void; getToken(): Promise; apiRequestFunction: (req: ApiRequest) => Promise; entriesByFolder(folder: string, extension: string, depth: number): Promise; listAllFiles(folder: string, extension: string, depth: number): Promise<{ id: string; type: string; path: string; name: string; }[]>; allEntriesByFolder(folder: string, extension: string, depth: number): Promise; entriesByFiles(files: ImplementationFile[]): Promise; getEntry(path: string): Promise<{ file: { path: string; id: null; }; data: string; }>; getMedia(mediaFolder?: string | undefined, folderSupport?: boolean): Promise<{ id: string; name: string; path: string; displayURL: { id: string; path: string; }; isDirectory: boolean; }[]>; getLargeMediaClient(): Promise; getMediaDisplayURL(displayURL: DisplayURL): Promise; getMediaFile(path: string): Promise<{ id: string; displayURL: string; path: string; name: string; size: number; file: File; url: string; }>; persistEntry(entry: BackendEntry, options: PersistOptions): Promise; persistMedia(mediaFile: { fileObj: File; size: number; sha: string; raw: string; path: string; } | AssetProxy, options: PersistOptions): Promise<{ displayURL: string; path: string; name: string; size: number; id: string; file: File; url: string; }>; _persistMedia(mediaFile: { fileObj: File; size: number; sha: string; raw: string; path: string; } | AssetProxy, options: PersistOptions): Promise<{ displayURL: string; path: string; name: string; size: number; id: string; file: File; url: string; }>; deleteFiles(paths: string[], commitMessage: string): Promise; traverseCursor(cursor: Cursor, action: string): Promise<{ entries: import("@staticcms/core").ImplementationEntry[]; cursor: Cursor; }>; loadMediaFile(path: string, id: string, { branch }: { branch: string; }): Promise<{ id: string; displayURL: string; path: string; name: string; size: number; file: File; }>; /** * Editorial Workflow */ unpublishedEntries(): Promise; unpublishedEntry({ id, collection, slug, }: { id?: string; collection?: string; slug?: string; }): Promise; getBranch(collection: string, slug: string): string; unpublishedEntryDataFile(collection: string, slug: string, path: string, id: string): Promise; unpublishedEntryMediaFile(collection: string, slug: string, path: string, id: string): Promise<{ id: string; displayURL: string; path: string; name: string; size: number; file: File; }>; updateUnpublishedEntryStatus(collection: string, slug: string, newStatus: WorkflowStatus): Promise; deleteUnpublishedEntry(collection: string, slug: string): Promise; publishUnpublishedEntry(collection: string, slug: string): Promise; getDeployPreview(collection: string, slug: string): Promise<{ url: string; status: import("@staticcms/core/lib/util/API").PreviewState; } | null>; }