import { type LocalRuntime } from './runtime.js'; import { Sandbox, type Isolation, type SandboxNetwork, type VolumeMount } from './sandbox.js'; export interface BuildImageInfo { reference: string; digest: string; sizeBytes: number; layerCount: number; } export interface ImageInfo { reference: string; digest: string; sizeBytes: number; pulledAt: string; lastUsed: string; path: string; } export type RegistryProtocol = 'https' | 'http'; export declare class RegistryCredentials { readonly username: string; readonly password: string; constructor(username: string, password: string); bridgeValue(): Readonly>; } type SignaturePolicyValue = { mode: 'skip'; } | { mode: 'cosign_key'; public_key: string; } | { mode: 'cosign_keyless'; issuer: string; identity: string; }; export declare class SignaturePolicy { private readonly value; private constructor(); static skip(): SignaturePolicy; static cosignKey(publicKey: string): SignaturePolicy; static cosignKeyless(issuer: string, identity: string): SignaturePolicy; bridgeValue(): SignaturePolicyValue; } export interface ImageHealthCheckInfo { test: readonly string[]; interval?: number; timeout?: number; retries?: number; startPeriod?: number; } export interface ImageInspectInfo extends ImageInfo { manifestDigest: string; layerCount: number; entrypoint?: readonly string[]; command?: readonly string[]; env: Readonly>; workingDir?: string; user?: string; exposedPorts: readonly string[]; volumes: readonly string[]; stopSignal?: string; healthCheck?: ImageHealthCheckInfo; onbuild: readonly string[]; labels: Readonly>; } export interface ImageHistoryInfo { created?: string; createdBy: string; sizeBytes: number; comment: string; emptyLayer: boolean; } export interface PushImageInfo { reference: string; manifestDigest: string; configUrl: string; manifestUrl: string; } export interface SdkCapabilities { protocolVersion: number; operations: readonly string[]; } export interface SandboxSummary { id: string; shortId: string; name: string; image: string; isolation: string; status: string; statusSummary: string; active: boolean; pid?: number; cpus: number; memoryMb: number; ports: readonly string[]; command: readonly string[]; health: string; labels: Readonly>; createdAt: string; startedAt?: string; networkName?: string; volumeNames: readonly string[]; } export interface SandboxLogEntry { stream: string; message: string; timestamp?: string; } export interface SandboxStats { id: string; shortId: string; name: string; status: string; pid: number; cpus: number; cpuPercent: number; cpuPercentScaled: number; memoryBytes: number; memoryLimitBytes: number; memoryPercent: number; networkRxBytes: number; networkTxBytes: number; blockReadBytes: number; blockWriteBytes: number; } export interface RuntimeVirtualization { available: boolean; backend?: string; details: string; } export interface RuntimeDiagnostics { coreVersion: string; runtimeVersion: string; sdkVersion: string; home: string; virtualization: RuntimeVirtualization; } export interface RuntimeDiskUsage { home: string; totalBytes: number; boxesBytes: number; imagesBytes: number; volumesBytes: number; snapshotsBytes: number; stateBytes: number; otherBytes: number; } export interface FilesystemSnapshotSummary { id: string; name: string; sourceSandboxId: string; image: string; vcpus: number; memoryMb: number; volumes: readonly string[]; command: readonly string[]; ports: readonly string[]; labels: Readonly>; networkMode?: string; sizeBytes: number; createdAt: string; description: string; } export interface VolumeInfo { name: string; driver: string; mountPoint: string; labels: Readonly>; inUseBy: readonly string[]; inUse: boolean; sizeLimit: number; createdAt: string; } export interface NetworkEndpointInfo { boxId: string; boxName: string; aliases: readonly string[]; ipAddress: string; macAddress: string; } export interface NetworkInfo { name: string; driver: string; subnet: string; gateway: string; labels: Readonly>; endpoints: readonly NetworkEndpointInfo[]; endpointCount: number; isolation: string; createdAt: string; } /** Host-level resource client and entry point for fluent builders. */ export declare class A3SBoxClient { readonly runtime: LocalRuntime; constructor(runtime?: LocalRuntime); image(contextDir: string): ImageBuilder; volume(name: string): VolumeBuilder; network(name: string): NetworkBuilder; sandbox(image?: string): SandboxBuilder; pullImage(reference: string, options?: { force?: boolean; platform?: string; credentials?: RegistryCredentials; signaturePolicy?: SignaturePolicy; }): Promise; getImage(reference: string): Promise; listImages(): Promise; inspectImage(reference: string): Promise; imageHistory(reference: string): Promise; tagImage(source: string, target: string): Promise; pushImage(source: string, target: string, options?: { credentials?: RegistryCredentials; registryProtocol?: RegistryProtocol; }): Promise; removeImage(reference: string): Promise; evictImages(): Promise; getVolume(name: string): Promise; listVolumes(): Promise; removeVolume(name: string, options?: { force?: boolean; }): Promise; pruneVolumes(): Promise; getNetwork(name: string): Promise; listNetworks(): Promise; removeNetwork(name: string): Promise; pruneNetworks(): Promise; capabilities(): Promise; listSandboxes(options?: { all?: boolean; }): Promise; getSandbox(query: string): Promise; runtimeDiagnostics(): Promise; runtimeDiskUsage(): Promise; listFilesystemSnapshots(): Promise; getFilesystemSnapshot(snapshotId: string): Promise; } export declare class ImageBuilder { private readonly runtime; private readonly contextDir; private dockerfilePath?; private imageTag?; private readonly buildArgs; private quietBuild; private readonly platforms; private buildTarget?; private disableCache; constructor(runtime: LocalRuntime, contextDir: string); dockerfile(path: string): this; tag(tag: string): this; buildArg(key: string, value: string): this; quiet(enabled?: boolean): this; platform(platform: string): this; target(target: string): this; noCache(enabled?: boolean): this; build(): Promise; } export declare class VolumeBuilder { private readonly runtime; private readonly name; private readonly labels; private sizeLimitBytes; constructor(runtime: LocalRuntime, name: string); label(key: string, value: string): this; sizeLimit(sizeBytes: number): this; create(): Promise; } export declare class NetworkBuilder { private readonly runtime; private readonly name; private networkSubnet; private readonly labels; constructor(runtime: LocalRuntime, name: string); subnet(subnet: string): this; label(key: string, value: string): this; create(): Promise; } export declare class SandboxBuilder { private readonly image; private readonly options; constructor(runtime: LocalRuntime, image: string); timeout(timeoutMs: number): this; command(...argv: string[]): this; entrypoint(...argv: string[]): this; env(key: string, value: string): this; metadata(key: string, value: string): this; name(name: string): this; cpus(cpus: number): this; memoryMb(memoryMb: number): this; isolation(isolation: Isolation): this; filesystemSnapshot(snapshotId: string): this; workspace(path: string): this; workdir(path: string): this; user(user: string): this; hostname(hostname: string): this; mount(mount: VolumeMount): this; mountBind(source: string, target: string, options?: { readOnly?: boolean; }): this; mountNamed(name: string, target: string, options?: { readOnly?: boolean; }): this; tmpfs(target: string, options?: { sizeBytes?: number; readOnly?: boolean; }): this; network(network: string | SandboxNetwork): this; disableNetwork(): this; publishTcp(hostPort: number, guestPort: number): this; dnsServer(address: string): this; hostAlias(host: string, address: string): this; readOnly(enabled?: boolean): this; persistent(enabled?: boolean): this; autoRemove(enabled?: boolean): this; start(): Promise; } export {}; //# sourceMappingURL=client.d.ts.map