/// /// import { Cursor } from '@staticcms/core/lib/util'; import API from './API'; import type { BackendClass, BackendEntry, ConfigWithDefaults, Credentials, DisplayURL, ImplementationFile, ImplementationMediaFile, PersistOptions, UnpublishedEntry, User } from '@staticcms/core'; import type { AsyncLock } from '@staticcms/core/lib/util'; import type AssetProxy from '@staticcms/core/valueObjects/AssetProxy'; import type { Semaphore } from 'semaphore'; import type { GiteaUser } from './types'; type ApiFile = { id: string; type: string; name: string; path: string; size: number; }; export default class Gitea implements BackendClass { lock: AsyncLock; api: API | null; options: { proxied: boolean; API: API | null; }; originRepo: string; repo?: string; branch: string; apiRoot: string; mediaFolder?: string; token: string | null; _currentUserPromise?: Promise; _userIsOriginMaintainerPromises?: { [key: string]: Promise; }; _mediaDisplayURLSem?: Semaphore; constructor(config: ConfigWithDefaults, options?: {}); status(): Promise<{ auth: { status: boolean; }; api: { status: boolean; statusPage: string; }; }>; authComponent(): import("react").FC; restoreUser(user: User): Promise<{ name: string; login: string; avatar_url: string; token: string; }>; currentUser({ token }: { token: string; }): Promise; userIsOriginMaintainer({ username: usernameArg, token, }: { username?: string; token: string; }): Promise; authenticate(state: Credentials): Promise<{ name: string; login: string; avatar_url: string; token: string; }>; logout(): void; getToken(): Promise; getCursorAndFiles: (files: ApiFile[], page: number) => { cursor: Cursor; files: ApiFile[]; }; entriesByFolder(folder: string, extension: string, depth: number): Promise; allEntriesByFolder(folder: string, extension: string, depth: number): Promise; entriesByFiles(files: ImplementationFile[]): Promise; getEntry(path: string): Promise<{ file: { path: string; id: null; }; data: string; } | { file: { path: string; id: null; }; data: string; }>; getMedia(mediaFolder?: string | undefined, folderSupport?: boolean): Promise<{ id: string; name: string; size: number; displayURL: { id: string; path: string; }; path: string; isDirectory: boolean; }[]>; getMediaFile(path: string): Promise<{ id: string; displayURL: string; path: string; name: string; size: number; file: File; url: string; }>; getMediaDisplayURL(displayURL: DisplayURL): Promise; persistEntry(entry: BackendEntry, options: PersistOptions): Promise; persistMedia(mediaFile: AssetProxy, options: PersistOptions): Promise<{ id: string; name: string; size: number; displayURL: string; path: string; }>; deleteFiles(paths: string[], commitMessage: string): Promise; traverseCursor(cursor: Cursor, action: string): Promise<{ entries: import("@staticcms/core").ImplementationEntry[]; cursor: Cursor; }>; unpublishedEntries(): Promise; unpublishedEntry(): Promise; unpublishedEntryDataFile(): Promise; unpublishedEntryMediaFile(): Promise; updateUnpublishedEntryStatus(): Promise; publishUnpublishedEntry(): Promise; deleteUnpublishedEntry(): Promise; getDeployPreview(): Promise<{ url: string; status: string; } | null>; } export {};