import type { components } from '../generated/api.js';
import { WorkspaceScopedResource } from './base.js';
/** Agones fleet selector — live voice calls (default) or the isolated background-tool runners. */
type FleetKind = 'voice' | 'tool-runner';
/**
 * Sessions — operator visibility into **live agent calls**. List the
 * currently active sessions across the workspace, and inject a one-shot
 * directive (text or audio) into a specific call's session mid-flight.
 *
 * Distinct from `client.simulations.sessions` (Playground / batch testing)
 * and `client.simulations.runs.createSession` (sub-session of a multi-run
 * batch). Those are read-write fixtures; this resource controls real,
 * in-progress operator-attended calls.
 *
 * @beta New in this release; surface may evolve.
 */
export declare class SessionsResource extends WorkspaceScopedResource {
    /** List currently active sessions across the workspace */
    listActive(): Promise<{
        call_sid: string;
        caller_id: string;
        current_state?: string | undefined;
        direction: string;
        duration_seconds: number;
        scenario?: string | undefined;
        service_id?: string | null | undefined;
        workspace_id?: string | null | undefined;
    }[] & import("../index.js").ResponseMetadata>;
    /**
     * Live Agones fleet capacity (workspace-global) — Ready/Allocated/total
     * GameServers plus headroom against the maxReplicas ceiling. `fleet`
     * selects the voice fleet (default) or the isolated `tool-runner` fleet;
     * omitted, the server defaults to voice. Operator-only.
     *
     * The `fleet` query param is typed locally until the generated spec picks
     * it up via sdk-sync; the response schema is already generated.
     */
    getFleetStatus(opts?: {
        fleet?: FleetKind;
    }): Promise<{
        allocated: number;
        by_state: {
            [key: string]: number;
        };
        fleet: string;
        headroom: number | null;
        max_replicas: number | null;
        namespace: string;
        ready: number;
        total: number;
    } & import("../index.js").ResponseMetadata>;
    /** Inject a one-shot directive (text/audio) into a live call session */
    inject(callSid: string, body: components['schemas']['InjectRequest']): Promise<{
        call_sid: string;
        status: "delivered" | "queued_no_subscriber";
    } & import("../index.js").ResponseMetadata>;
}
export {};
//# sourceMappingURL=sessions.d.ts.map