import { RestCreateCheckResponse, RestDeleteVersionResponse, RestNode, RestNodeCollection, RestPerformActionResponse, RestPromoteVersionResponse, RestPublicLinkDeleteSuccess, RestShareLink, RestIncomingNode, RestNodeLocator, RestActionOptionsCopyMove, RestNamespaceValuesResponse, GetByUuidFlagsEnum } from 'cells-sdk-ts'; import { Node, NodeVersions } from './CellsAPI.schema'; import { CellsStorage } from './CellsStorage/CellsStorage'; import { AccessTokenStore } from '../auth'; import { HttpClient } from '../http'; export type SortDirection = 'asc' | 'desc'; interface CellsConfig { pydio: { apiKey?: string; segment: string; url: string; }; s3: { apiKey?: string; bucket: string; endpoint: string; region: string; }; } export declare class CellsAPI { private readonly logger; private accessTokenStore; private httpClientConfig; private storageService; private client; constructor({ accessTokenStore, httpClientConfig, }: { accessTokenStore: AccessTokenStore; httpClientConfig: HttpClient['config']; }); initialize({ cellsConfig, httpClient, storageService, }: { cellsConfig: CellsConfig; httpClient?: HttpClient; storageService?: CellsStorage; }): void; private getHttpClient; uploadNodeDraft({ uuid, versionId, path, file, autoRename, progressCallback, abortController, }: { uuid: string; versionId: string; path: string; file: File; autoRename?: boolean; progressCallback?: (progress: number) => void; abortController?: AbortController; }): Promise; promoteNodeDraft({ uuid, versionId }: { uuid: string; versionId: string; }): Promise; deleteNodeDraft({ uuid, versionId }: { uuid: string; versionId: string; }): Promise; deleteNode({ uuid, permanently, }: { uuid: string; permanently?: boolean; }): Promise; moveNode({ currentPath, targetPath, }: { currentPath: RestNodeLocator['Path']; targetPath: RestActionOptionsCopyMove['TargetPath']; }): Promise; restoreNode({ uuid }: { uuid: string; }): Promise; renameNode({ currentPath, newName }: { currentPath: string; newName: string; }): Promise; lookupNodeByPath({ path }: { path: string; }): Promise; lookupNodeByUuid({ uuid }: { uuid: string; }): Promise; getNodeVersions({ uuid, flags }: { uuid: string; flags?: Array; }): Promise; getNode({ id, flags }: { id: string; flags?: Array; }): Promise; getAllNodes({ path, limit, offset, sortBy, sortDirection, type, deleted, }: { path: string; limit?: number; offset?: number; sortBy?: string; sortDirection?: SortDirection; type?: RestIncomingNode['Type']; deleted?: boolean; }): Promise; searchNodes({ phrase, path, limit, offset, sortBy, sortDirection, type, tags, deleted, }: { phrase: string; path?: string; limit?: number; offset?: number; sortBy?: string; sortDirection?: SortDirection; type?: RestIncomingNode['Type']; tags?: string[]; deleted?: boolean; }): Promise; private createNode; createFile({ path, uuid, versionId, }: { path: NonNullable; uuid: NonNullable; versionId: NonNullable; }): Promise; createFolder({ path, uuid, }: { path: NonNullable; uuid: NonNullable; }): Promise; deleteNodePublicLink({ uuid }: { uuid: string; }): Promise; /** * Creates a public link for sharing a node (file or folder). * * @param uuid - The UUID of the node to share * @param label - Optional label for the link * @param createPassword - Initial password to protect the link * @param passwordEnabled - Whether password protection is enabled (required if createPassword is provided) * @param accessEnd - Unix timestamp as string (e.g., '1765839600') for link expiration * @returns The created share link with its URL and metadata */ createNodePublicLink({ uuid, link, createPassword, passwordEnabled, }: { uuid: string; link: RestShareLink; createPassword?: string; passwordEnabled?: boolean; }): Promise; getNodePublicLink({ uuid }: { uuid: string; }): Promise; /** * Updates an existing public link's settings. * * @param linkUuid - The UUID of the link to update * @param link - The RestShareLink object with updated properties * @param createPassword - Set initial password (use when setting password for first time) * @param updatePassword - Update existing password (use when changing an existing password) * @param passwordEnabled - Enable or disable password protection * @returns The updated share link with new settings */ updateNodePublicLink({ linkUuid, link, createPassword, updatePassword, passwordEnabled, }: { linkUuid: string; link: RestShareLink; createPassword?: string; updatePassword?: string; passwordEnabled?: boolean; }): Promise; getAllTags(): Promise; setNodeTags({ uuid, tags }: { uuid: string; tags: string[]; }): Promise; private transformTagsToJson; } export {}; //# sourceMappingURL=CellsAPI.d.ts.map