import { type ToolOutputImage } from '@openai/agents-core'; import { Manifest, type SandboxClient, type SandboxClientCreateArgs, type SandboxClientOptions, type SandboxPreservedSessionReuseOptions, type SandboxArchiveLimits, type SandboxConcurrencyLimits, type ExposedPortEndpoint, type ExecCommandArgs, type MaterializeEntryArgs, type ReadFileArgs, type SandboxSession, type SandboxSessionState, type ViewImageArgs, type WriteStdinArgs, type WorkspaceArchiveData, type WorkspaceArchiveOptions } from '@openai/agents-core/sandbox'; import { RemoteSandboxEditor } from '../shared'; type DaytonaSandboxLike = { id: string; start(timeout?: number): Promise; stop(timeout?: number, force?: boolean): Promise; delete(timeout?: number): Promise; fs: { createFolder(path: string, mode: string): Promise; uploadFile(source: Buffer | string, remotePath: string, timeout?: number): Promise; downloadFile(remotePath: string, timeout?: number): Promise; deleteFile(path: string, recursive?: boolean): Promise; }; process: { executeCommand(command: string, cwd?: string, env?: Record, timeout?: number): Promise; createPty?(options?: { id?: string; cwd?: string; envs?: Record; cols?: number; rows?: number; onData?: (data: Uint8Array | string) => void | Promise; }): Promise; killPtySession?(id: string): Promise; }; getSignedPreviewUrl?(port: number, expiresInSeconds?: number): Promise; }; type DaytonaExecuteResponse = { exitCode: number; result: string; artifacts?: { stdout?: string; }; }; type DaytonaPreviewUrlLike = string | { url?: string; }; type DaytonaPtyHandle = { sessionId?: string; waitForConnection?(): Promise; sendInput?(data: string | Uint8Array): Promise; wait?(): Promise<{ exitCode?: number; error?: string; }>; kill?(): Promise; disconnect?(): Promise; exitCode?: number; error?: string; }; export interface DaytonaSandboxClientOptions extends SandboxClientOptions { image?: string; resources?: Record; env?: Record; pauseOnExit?: boolean; createTimeoutSec?: number; startTimeoutSec?: number; timeoutSec?: number; sandboxSnapshotName?: string; exposedPorts?: number[]; exposedPortUrlTtlS?: number; name?: string; autoStopInterval?: number; apiKey?: string; apiUrl?: string; target?: string; archiveLimits?: SandboxArchiveLimits | null; } export interface DaytonaSandboxSessionState extends SandboxSessionState { sandboxId: string; image?: string; resources?: Record; pauseOnExit: boolean; createTimeoutSec?: number; startTimeoutSec?: number; timeoutSec?: number; sandboxSnapshotName?: string; configuredExposedPorts?: number[]; exposedPortUrlTtlS?: number; name?: string; autoStopInterval?: number; environment: Record; apiKey?: string; apiUrl?: string; target?: string; } export declare class DaytonaSandboxSession implements SandboxSession { readonly state: DaytonaSandboxSessionState; private readonly sandbox; private readonly ptyProcesses; private readonly remotePathResolver; private readonly activeMountPaths; private readonly concurrencyLimits?; private archiveLimits?; private stopPromise?; private deletePromise?; constructor(args: { state: DaytonaSandboxSessionState; sandbox: DaytonaSandboxLike; concurrencyLimits?: SandboxConcurrencyLimits; archiveLimits?: SandboxArchiveLimits | null; }); setArchiveLimits(limits?: SandboxArchiveLimits | null): void; createEditor(runAs?: string): RemoteSandboxEditor; supportsPty(): boolean; execCommand(args: ExecCommandArgs): Promise; writeStdin(args: WriteStdinArgs): Promise; private execPtyCommand; private terminatePtyHandle; viewImage(args: ViewImageArgs): Promise; readFile(args: ReadFileArgs): Promise; pathExists(path: string, runAs?: string): Promise; directoryExists(path: string, runAs?: string): Promise; running(): Promise; resolveExposedPort(port: number): Promise; materializeEntry(args: MaterializeEntryArgs): Promise; private materializeEntryExclusive; applyManifest(manifest: Manifest, runAs?: string): Promise; private applyManifestExclusive; materializeInitialManifest(manifest: Manifest): Promise; rematerializeMountEntries(): Promise; private rematerializeMountEntriesExclusive; prepareWorkspaceRoot(): Promise; persistWorkspace(): Promise; hydrateWorkspace(data: WorkspaceArchiveData, options?: WorkspaceArchiveOptions): Promise; close(): Promise; shutdown(): Promise; delete(): Promise; private stopOnce; private deleteOnce; private writer; private assertSessionUsable; private invalidateAfterFailedPrivilegedManifestTransition; private manifestMaterializationOptions; private materializeMountEntry; private unmountActiveMounts; private unmountMountPath; private mountCommandRunner; private runAsCommandRunner; private archiveIo; private readFileBytes; private readEditorText; private mkdirEditorPath; private writeEditorText; private deleteEditorPath; private runEditorFileCommand; private resolveEditorPath; private ensureParentDir; private resolveRemotePath; private resolveRemoteCredentialPath; private createSignedPreviewUrl; } /** * @see {@link https://www.daytona.io/docs/ | Daytona docs}. * @see {@link https://www.daytona.io/docs/en/getting-started/ | Getting started}. * @see {@link https://www.daytona.io/docs/en/typescript-sdk/sandbox/ | TypeScript SDK Sandbox reference}. */ export declare class DaytonaSandboxClient implements SandboxClient { readonly backendId = "daytona"; private readonly options; constructor(options?: DaytonaSandboxClientOptions); resolveTrustedManifestForResume(manifest: Manifest): Manifest; create(args?: SandboxClientCreateArgs | Manifest, manifestOptions?: DaytonaSandboxClientOptions): Promise; serializeSessionState(state: DaytonaSandboxSessionState): Promise>; canPersistOwnedSessionState(state: DaytonaSandboxSessionState): boolean; canReusePreservedOwnedSession(state: DaytonaSandboxSessionState, options?: SandboxPreservedSessionReuseOptions): Promise; deserializeSessionState(state: Record): Promise; resume(state: DaytonaSandboxSessionState): Promise; private recreateFromPersistedState; } export {};