UNPKG

@datalayer/core

Version:

[![Datalayer](https://assets.datalayer.tech/datalayer-25.svg)](https://datalayer.io)

110 lines (109 loc) 5.34 kB
/** * Main Datalayer Client with intuitive mixin-based API. * Provides unified, flat API for all Datalayer platform services through TypeScript mixins. * * @module client * * @example * ```typescript * const client = new DatalayerClient({ * token: 'your-api-token' * }); * * const user = await client.whoami(); * const runtime = await client.createRuntime(config); * ``` */ import { DatalayerClientBase, type DatalayerClientConfig, type SDKHandlers } from './base'; import type { UserDTO } from './../models/UserDTO'; import type { CreditsDTO } from '../models/CreditsDTO'; import type { EnvironmentDTO } from '../models/EnvironmentDTO'; import type { RuntimeDTO } from '../models/RuntimeDTO'; import type { RuntimeSnapshotDTO } from '../models/RuntimeSnapshotDTO'; import type { SpaceDTO } from '../models/SpaceDTO'; import type { NotebookDTO } from '../models/NotebookDTO'; import type { LexicalDTO } from '../models/LexicalDTO'; import type { HealthCheck } from '../models/HealthCheck'; declare const DatalayerClientWithMixins: typeof DatalayerClientBase; /** * Main Datalayer Client providing unified access to all platform services. * Uses TypeScript mixins to provide a flat, discoverable API. * * @example * ```typescript * const client = new DatalayerClient({ * token: 'your-token' * }); * * const user = await client.whoami(); * const runtime = await client.createRuntime({ * environment_name: 'python-cpu-env', * credits_limit: 100 * }); * ``` */ export declare class DatalayerClient extends DatalayerClientWithMixins { /** * Create a DatalayerClient instance. * * @param config - Client configuration options */ constructor(config: DatalayerClientConfig); } export type { DatalayerClientConfig, SDKHandlers }; export { DatalayerClientBase }; export { UserDTO as User } from './../models/UserDTO'; export type { UserJSON } from './../models/UserDTO'; export { RuntimeDTO as Runtime } from '../models/RuntimeDTO'; export type { RuntimeJSON } from '../models/RuntimeDTO'; export { EnvironmentDTO as Environment } from '../models/EnvironmentDTO'; export type { EnvironmentJSON } from '../models/EnvironmentDTO'; export { RuntimeSnapshotDTO as Snapshot } from '../models/RuntimeSnapshotDTO'; export { SpaceDTO as Space } from '../models/SpaceDTO'; export { NotebookDTO as Notebook } from '../models/NotebookDTO'; export { LexicalDTO } from '../models/LexicalDTO'; export { CreditsDTO as Credits } from '../models/CreditsDTO'; export { ItemDTO as Item } from '../models/ItemDTO'; export { HealthCheck } from '../models/HealthCheck'; export type { HealthCheckJSON } from '../models/HealthCheck'; export { ItemTypes } from './constants'; export type { ItemType } from './constants'; export * from './auth'; export interface DatalayerClient { getToken(): string | undefined; setToken(token: string): Promise<void>; whoami(): Promise<UserDTO>; login(token: string): Promise<UserDTO>; logout(): Promise<void>; getCredits(): Promise<CreditsDTO>; calculateMaxRuntimeMinutes(availableCredits: number, burningRate: number): number; calculateCreditsRequired(minutes: number, burningRate: number): number; checkIAMHealth(): Promise<HealthCheck>; listEnvironments(): Promise<EnvironmentDTO[]>; ensureRuntime(environmentName?: string, creditsLimit?: number, waitForReady?: boolean, maxWaitTime?: number, reuseExisting?: boolean, snapshotId?: string): Promise<RuntimeDTO>; createRuntime(environmentName: string, type: 'notebook' | 'terminal' | 'job', givenName: string, minutesLimit: number, fromSnapshotId?: string): Promise<RuntimeDTO>; listRuntimes(): Promise<RuntimeDTO[]>; getRuntime(podName: string): Promise<RuntimeDTO>; deleteRuntime(podName: string): Promise<void>; terminateAllRuntimes(): Promise<PromiseSettledResult<void>[]>; createSnapshot(podName: string, name: string, description: string, stop?: boolean): Promise<RuntimeSnapshotDTO>; listSnapshots(): Promise<RuntimeSnapshotDTO[]>; getSnapshot(id: string): Promise<RuntimeSnapshotDTO>; deleteSnapshot(id: string): Promise<void>; checkRuntimesHealth(): Promise<HealthCheck>; getMySpaces(): Promise<SpaceDTO[]>; createSpace(name: string, description: string, variant: string, spaceHandle: string, organizationId: string, seedSpaceId: string, isPublic: boolean): Promise<SpaceDTO>; createNotebook(spaceId: string, name: string, description: string, file?: File | Blob): Promise<NotebookDTO>; getNotebook(id: string): Promise<NotebookDTO>; updateNotebook(id: string, name?: string, description?: string): Promise<NotebookDTO>; createLexical(spaceId: string, name: string, description: string, file?: File | Blob): Promise<LexicalDTO>; getLexical(id: string): Promise<LexicalDTO>; updateLexical(id: string, name?: string, description?: string): Promise<LexicalDTO>; getSpaceItems(spaceId: string): Promise<(NotebookDTO | LexicalDTO)[]>; getSpaceItem(itemId: string): Promise<NotebookDTO | LexicalDTO>; deleteSpaceItem(itemId: string): Promise<void>; getCollaborationSessionId(documentId: string): Promise<string>; getContent(itemId: string): Promise<any>; checkSpacerHealth(): Promise<HealthCheck>; calculateCreditsFromMinutes(minutes: number, burningRate: number): number; }