import type { S3Config } from '../../vfs/s3/config.ts';
import { type WorkspaceLike } from './state.ts';
/**
 * Serialize a workspace to a tar while new lines wait (see
 * `Workspace.quiesced`). With a target it streams to that file, or with
 * `s3` it goes to that key of an S3-like store, under its `key_prefix`.
 *
 * @returns The tar's bytes, or with a file target its size.
 */
export declare function snapshot(ws: WorkspaceLike, target?: string, options?: {
    s3?: S3Config;
}): Promise<Uint8Array | number>;
/**
 * Read a snapshot tar back into a state dict: a file, the bytes
 * themselves, or with `s3` a key of an S3-like store. With `staging`, a
 * file's disk mount files are extracted under that directory and come
 * back as host paths rather than bytes.
 * `maxBytes` limits expanded and restored bytes; `maxEncodedBytes`
 * independently limits the encoded object fetched from S3.
 */
export declare function readSnapshot(source: string | Uint8Array, options?: {
    s3?: S3Config;
    staging?: string;
    maxBytes?: number;
    maxEncodedBytes?: number;
}): Promise<unknown>;
//# sourceMappingURL=api.d.ts.map