import { APIResource } from '../../core/resource.js';
import * as SandboxesAPI from './sandboxes.js';
import { APIPromise } from '../../core/api-promise.js';
import { RequestOptions } from '../../internal/request-options.js';
export declare class Snapshots extends APIResource {
    /**
     * Create a snapshot from a Docker image (async build).
     */
    create(body: SnapshotCreateParams, options?: RequestOptions): APIPromise<SandboxesAPI.SnapshotResponse>;
    /**
     * Get a sandbox snapshot by ID.
     */
    retrieve(snapshotID: string, options?: RequestOptions): APIPromise<SandboxesAPI.SnapshotResponse>;
    /**
     * List sandbox snapshots for the authenticated tenant, with optional filtering,
     * sorting, and pagination.
     */
    list(query?: SnapshotListParams | null | undefined, options?: RequestOptions): APIPromise<SandboxesAPI.SnapshotListResponse>;
    /**
     * Delete a snapshot by ID. The underlying storage is reclaimed asynchronously.
     */
    delete(snapshotID: string, options?: RequestOptions): APIPromise<void>;
}
export interface SnapshotCreateParams {
    docker_image: string;
    fs_capacity_bytes: number;
    name: string;
    registry_id?: string;
}
export interface SnapshotListParams {
    /**
     * Filter by creator identity. Only 'me' is supported.
     */
    created_by?: string;
    /**
     * Maximum number of results
     */
    limit?: number;
    /**
     * Filter by name substring
     */
    name_contains?: string;
    /**
     * Pagination offset
     */
    offset?: number;
    /**
     * Sort column (name, status, created_at)
     */
    sort_by?: string;
    /**
     * Sort direction (asc, desc)
     */
    sort_direction?: string;
    /**
     * Filter by status (building, ready, failed, deleting)
     */
    status?: string;
}
export declare namespace Snapshots {
    export { type SnapshotCreateParams as SnapshotCreateParams, type SnapshotListParams as SnapshotListParams };
}
