import { ApiProjectTypes, AuthenticationData, DeviceData, EditorFileData, EditorPreviewSettings, EmptyData, FileData, LiveEditorApiComponent, MediaFileData, MediaOptions, OnboardingInfo, OnboardingStatus, PingResult, PreviewSettings, ProjectData, PublishResult, WorkspaceData } from '../editor/api'; import { RemoteMediaConstructor } from '../remoteMedia'; import bent from 'bent'; export declare const getJSON: bent.RequestFunction; export declare const postJSON: bent.RequestFunction; export interface ServerApiComponent { apiBaseUrl: string; apiGenericBaseUrl: string; baseUrl: string; expandParams(params: Record): Record; remoteMediaProviders: Array; resolveApiUrl(path: string): string; resolveApiGenericUrl(path: string): string; resolveUrl(path: string): string; } /** * Api for connecting with the editor.dev api connector. */ export declare class ServerApi implements LiveEditorApiComponent, ServerApiComponent { projectTypes: ApiProjectTypes; remoteMediaProviders: Array; constructor(); get apiBaseUrl(): string; get apiGenericBaseUrl(): string; get baseUrl(): string; /** * Verify that the authentication for services that require auth. * * @returns True if the auth check out. */ checkAuth(): boolean; checkOnboarding(): Promise; /** * Clear the authentication. Signs the user out of any accounts. */ clearAuth(): Promise; /** * Specific services may need to add additional params to all of * the api request (such as authentication params.) * * @param params Params being sent to the api. * @returns Updated params to send to the api. */ expandParams(params: Record): Record; copyFile(originalPath: string, path: string): Promise; createFile(path: string): Promise; createWorkspace(base: WorkspaceData, workspace: string): Promise; deleteFile(file: FileData): Promise; getAuthentication(): Promise; getDevices(): Promise>; getFile(file: FileData): Promise; getFiles(): Promise>; getFileUrl(file: FileData): Promise; getPreviewConfig(settings: EditorPreviewSettings, workspace: WorkspaceData): Promise; getProject(): Promise; getWorkspace(): Promise; getWorkspaces(): Promise>; loadWorkspace(workspace: WorkspaceData): Promise; publish(workspace: WorkspaceData, data?: Record): Promise; resolveApiUrl(path: string): string; resolveApiGenericUrl(path: string): string; resolveUrl(path: string): string; saveFile(file: EditorFileData, isRawEdit: boolean): Promise; updateOnboarding(info: OnboardingInfo): Promise; uploadFile(file: File, options?: MediaOptions): Promise; } /** * Connects to a locally running version of the api. * * This is used when a user is running `npx @blinkk/editor-server` locally. */ export declare class LocalServerApi extends ServerApi { port: number; onboardingStatus: OnboardingStatus; constructor(port?: number); get apiBaseUrl(): string; get apiGenericBaseUrl(): string; get baseUrl(): string; checkOnboarding(): Promise; protected get onboardingInfo(): OnboardingInfo; updateOnboarding(info: OnboardingInfo): Promise; ping(): Promise; } /** * Connects to the corresponding api server and maps to the right service * api for the request urls. */ export declare class ServiceServerApi extends ServerApi { branch?: string; isDev: boolean; isUnstable: boolean; organization?: string; project?: string; service: string; constructor(service: string, organization?: string, project?: string, branch?: string, isUnstable?: boolean, isDev?: boolean); get apiBaseUrl(): string; get apiGenericBaseUrl(): string; get apiUrlHost(): string; get baseUrl(): string; checkOnboarding(): Promise; getAuthentication(): Promise; getProject(): Promise; protected get onboardingStatus(): OnboardingStatus; get serviceName(): string; updateOnboarding(info: OnboardingInfo): Promise; loadWorkspace(workspace: WorkspaceData): Promise; }