/**
 * A single runtime checkpoint record.
 */
export interface RuntimeCheckpointData {
    /** Unique identifier (ULID) */
    id: string;
    /** Human-readable name */
    name: string;
    /** Checkpoint description */
    description: string;
    /** Runtime that was checkpointed */
    runtime_uid: string;
    /** Agent spec identifier (e.g. "mocks/monitor-sales-kpis") */
    agent_spec_id: string;
    /** Full agent spec payload */
    agentspec: Record<string, any>;
    /** Additional metadata */
    metadata: Record<string, any>;
    /** Checkpoint mode: criu (full) or light (history-only) */
    checkpoint_mode?: 'criu' | 'light';
    /** Lightweight checkpoint message history */
    messages?: string[];
    /** Status: requested | created | failed | deleted */
    status: string;
    /** Human-readable details about the current status (e.g. error message) */
    status_message?: string;
    /** ISO 8601 timestamp */
    updated_at: string;
}
/**
 * Request payload for creating a checkpoint.
 */
export interface CreateRuntimeCheckpointRequest {
    /** Runtime UID of the runtime that was checkpointed */
    runtime_uid: string;
    /** Human-readable name */
    name?: string;
    /** Checkpoint description */
    description?: string;
    /** Agent spec identifier */
    agentspec_id?: string;
    /** Full agent spec payload to persist */
    agentspec?: Record<string, any>;
    /** Additional metadata */
    metadata?: Record<string, any>;
}
/**
 * Response for listing checkpoints.
 */
export interface ListRuntimeCheckpointsResponse {
    success: boolean;
    message: string;
    checkpoints: RuntimeCheckpointData[];
}
/**
 * Response for getting a single checkpoint.
 */
export interface GetRuntimeCheckpointResponse {
    success: boolean;
    message: string;
    checkpoint: RuntimeCheckpointData;
}
/**
 * Response for creating a checkpoint.
 */
export interface CreateRuntimeCheckpointResponse {
    success: boolean;
    message: string;
    checkpoint: RuntimeCheckpointData;
}
/**
 * List runtime checkpoints for a specific runtime.
 * @param token - Authentication token
 * @param baseUrl - Base URL for the runtimes API
 * @param runtimeUid - Runtime UID to list checkpoints for
 * @returns Promise resolving to list of checkpoints
 */
export declare const listCheckpoints: (token: string, baseUrl?: string, runtimeUid?: string) => Promise<ListRuntimeCheckpointsResponse>;
/**
 * Get a single runtime checkpoint by ID.
 * @param token - Authentication token
 * @param runtimeUid - The runtime UID
 * @param checkpointId - The checkpoint ID (ULID)
 * @param baseUrl - Base URL for the runtimes API
 * @returns Promise resolving to checkpoint details
 */
export declare const getCheckpoint: (token: string, runtimeUid: string, checkpointId: string, baseUrl?: string) => Promise<GetRuntimeCheckpointResponse>;
/**
 * Create a checkpoint record (after a CRIU checkpoint has been taken).
 * @param token - Authentication token
 * @param data - Checkpoint creation payload (runtime_uid, agentspec, etc.)
 * @param baseUrl - Base URL for the runtimes API
 * @returns Promise resolving to the created checkpoint
 */
export declare const createCheckpoint: (token: string, data: CreateRuntimeCheckpointRequest, baseUrl?: string) => Promise<CreateRuntimeCheckpointResponse>;
/**
 * Poll a checkpoint until it reaches one of the target statuses.
 *
 * Useful for waiting until an async pause (status "paused")
 * completes before proceeding.  Checkpoint status stays "paused"
 * during resume — only the agent runtime status transitions.
 *
 * @param token - Authentication token
 * @param runtimeUid - The runtime UID that owns the checkpoint
 * @param checkpointId - The checkpoint ID (ULID) to poll
 * @param targetStatuses - Set of statuses that signal completion (e.g. ["paused", "failed"])
 * @param baseUrl - Base URL for the runtimes API
 * @param intervalMs - Polling interval in milliseconds (default: 2000)
 * @param timeoutMs - Maximum wait time in milliseconds (default: 600000 = 10 min)
 * @returns Promise resolving to the checkpoint data once a target status is reached
 * @throws {Error} If polling times out or the request fails
 */
export declare const waitForCheckpointStatus: (token: string, runtimeUid: string, checkpointId: string, targetStatuses: string[], baseUrl?: string, intervalMs?: number, timeoutMs?: number) => Promise<RuntimeCheckpointData>;
/**
 * Delete a runtime checkpoint.
 * @param token - Authentication token
 * @param runtimeUid - The runtime UID that owns the checkpoint
 * @param checkpointId - The checkpoint ID (ULID) to delete
 * @param baseUrl - Base URL for the runtimes API
 * @returns Promise resolving when deletion is complete
 */
export declare const deleteCheckpoint: (token: string, runtimeUid: string, checkpointId: string, baseUrl?: string) => Promise<void>;
