import type { Agent, AgentStats, AgentTestResult, AgentTrainingStats, AgentUsage, AgentVersion, AgentVersionComparison, AgentVersionRevision, FieldTemplate, TrainingAnalytics, TrainingExample, TrainingSession, AgentDeployment, WorkspaceAgentConfig, AgentSoul } from "../_internal/types.gen";
import type { RequestOptions } from "../base-client";
import { RequestBuilder } from "../request-builder";
/** Attributes for creating an agent. */
export type CreateAgentAttributes = {
    name: string;
    description?: string;
    workspace_id?: string;
    application_id?: string;
    tenant_id?: string;
    vertical?: string;
    tags?: string[];
    instructions?: string;
    default_instructions?: string;
    execution_mode?: string;
    allow_tenant_clone?: boolean;
    allow_instruction_override?: boolean;
    output_schema_locked?: boolean;
    input_schema_locked?: boolean;
    prompt_variants?: Record<string, unknown>;
    [key: string]: unknown;
};
/** Attributes for updating an agent. */
export type UpdateAgentAttributes = {
    name?: string;
    description?: string;
    vertical?: string;
    tags?: string[];
    instructions?: string;
    default_instructions?: string;
    execution_mode?: string;
    allow_tenant_clone?: boolean;
    allow_instruction_override?: boolean;
    output_schema_locked?: boolean;
    input_schema_locked?: boolean;
    prompt_variants?: Record<string, unknown>;
    [key: string]: unknown;
};
/** Attributes for cloning an agent. */
export type CloneAgentAttributes = {
    new_name: string;
};
/** Attributes for running an agent test. */
export type TestAgentAttributes = {
    sample_input: string;
};
/** Attributes for the teach (training) action on an agent. */
export type TeachAttributes = {
    document_id: string;
    corrections: Record<string, unknown>;
    confirmed_fields?: string[];
    correction_reasons?: Record<string, unknown>;
    training_note?: string;
    verify_remaining?: boolean;
};
/** Attributes for restoring a previously published agent version. */
export type RestoreVersionAttributes = {
    version_id: string;
};
/** Attributes for creating a new agent version. */
export type CreateAgentVersionAttributes = {
    agent_id: string;
    prompt_template?: unknown;
    version_number?: number;
    changes_summary?: string;
    delegation_requires_approval?: boolean;
    input_schema?: Record<string, unknown>;
    input_strict?: boolean;
    is_draft?: boolean;
    max_parallel_tools?: number;
    output_schema?: Record<string, unknown>;
    output_strict?: boolean;
    parent_version_id?: string;
    soul_id?: string;
    temperature?: string;
};
/** Attributes for creating a schema version. */
export type CreateSchemaVersionAttributes = {
    prompt_template: string;
    version_number: string;
    changes_summary?: string;
    input_schema?: Record<string, unknown>;
    input_strict?: boolean;
    output_schema?: Record<string, unknown>;
    output_strict?: boolean;
};
/** Attributes for updating a schema version. */
export type UpdateSchemaVersionAttributes = {
    prompt_template?: string;
    changes_summary?: string;
    input_schema?: Record<string, unknown>;
    input_strict?: boolean;
    output_schema?: Record<string, unknown>;
    output_strict?: boolean;
};
/** Attributes for creating a training example. */
export type CreateTrainingExampleAttributes = {
    agent_id: string;
    input_text: string;
    output_json: Record<string, unknown>;
    confidence_score?: number;
    corrected_value?: string;
    correction_metadata?: Record<string, unknown>;
    correction_reasons?: Record<string, unknown>;
    document_id?: string;
    document_type?: string;
    field_name?: string;
    input_image_ref?: string;
    is_confirmed?: boolean;
    original_value?: string;
    training_note?: string;
    training_session_id?: string;
    version_id?: string;
    workspace_id?: string;
};
/** Attributes for updating a training example. */
export type UpdateTrainingExampleAttributes = {
    input_text?: string;
    output_json?: Record<string, unknown>;
    correction_metadata?: Record<string, unknown>;
    correction_reasons?: Record<string, unknown>;
    input_image_ref?: string;
    training_note?: string;
};
/** Attributes for creating a field template. */
export type CreateFieldTemplateAttributes = {
    name: string;
    category: string;
    field_type?: string;
    extraction_hints?: Record<string, unknown>;
    is_system?: boolean;
    llm_instructions?: string;
    validation_pattern?: string;
};
/** An opaque export bundle produced by agent export and consumed by import. */
export type AgentExportBundle = Record<string, unknown>;
/** Result of a bulk delete operation. */
export type BulkDeleteResult = {
    deleted_count?: number;
    [key: string]: unknown;
};
/** Optional filter for system agent discovery. */
export interface ListSystemAgentsParams {
    /** Filter to a specific vertical, e.g. "clinical" or "medical". */
    vertical?: string;
}
/** Summary shape returned by the custom system-agent catalog endpoint. */
export interface SystemAgentSummary {
    id: string;
    name: string;
    description: string;
    vertical: string;
    tags: string[];
    system_slug: string | null;
    allow_tenant_clone: boolean;
    recommended_soul_id: string | null;
    recommended_model_class: string | null;
    attribution: {
        reviewer: string | null;
        reviewed_at: string | null;
        review_kind: string | null;
    } | null;
}
/**
 * Creates the `agents` namespace for the admin SDK.
 *
 * Provides full platform-level access to agents, versions, training,
 * schema management, and field templates across all workspaces.
 *
 * @param rb - The RequestBuilder bound to the authenticated admin client.
 * @returns An object with all agent-related methods and sub-namespaces.
 *
 * @example
 * const admin = new GptAdmin({ apiKey: 'sk_srv_...' });
 * const agents = await admin.agents.list();
 */
export declare function createAgentsNamespace(rb: RequestBuilder): {
    /**
     * Lists all agents (platform-wide, no workspace filter).
     *
     * @param options - Optional request options.
     * @returns Array of Agent objects.
     *
     * @example
     * const agents = await admin.agents.list();
     */
    list: (options?: RequestOptions) => Promise<Agent[]>;
    /**
     * Lists platform system agents available for cloning.
     *
     * Calls `GET /isv/catalog/system-agents`, a custom Phoenix controller
     * endpoint (not AshJsonApi). `rb.rawGet` already strips the `data`
     * envelope, so this method returns the agent array directly.
     *
     * @param params - Optional filter parameters.
     * @param params.vertical - Filter to a specific vertical, e.g. `"clinical"` or `"medical"`.
     *   Omit to return all system agents across all verticals.
     * @param options - Optional request options (signal, idempotency key, headers).
     * @returns A promise that resolves to an array of `SystemAgentSummary` objects.
     */
    listSystemAgents: (params?: ListSystemAgentsParams, options?: RequestOptions) => Promise<SystemAgentSummary[]>;
    /**
     * Fetches a single agent by ID.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns The Agent record.
     *
     * @example
     * const agent = await admin.agents.get('agt_01...');
     */
    get: (id: string, options?: RequestOptions) => Promise<Agent>;
    /**
     * Look up an agent by its system_slug. Use this for ISV-provisioned agents
     * where the slug is a stable identifier that survives database resets.
     *
     * @param slug - The system_slug of the agent (e.g., "chartless-session-prep-briefing").
     * @param options - Optional request options.
     * @returns The Agent record.
     *
     * @example
     * ```ts
     * const agent = await admin.agents.getBySlug("chartless-session-prep-briefing");
     * ```
     */
    getBySlug: (slug: string, options?: RequestOptions) => Promise<Agent>;
    /**
     * Clones an agent within the same workspace.
     *
     * @param id - The UUID of the agent to clone.
     * @param attributes - Optional attributes for the clone (name, description).
     * @param options - Optional request options.
     * @returns The cloned Agent.
     *
     * @example
     * const clone = await admin.agents.clone('agt_01...', { name: 'Clone of Bot' });
     */
    clone: (id: string, attributes: CloneAgentAttributes, options?: RequestOptions) => Promise<Agent>;
    /**
     * Clones an agent into a different workspace.
     *
     * @param agentId - The UUID of the agent to clone.
     * @param targetWorkspaceId - The UUID of the destination workspace.
     * @param options - Optional request options.
     * @returns The cloned Agent in the target workspace.
     *
     * @example
     * const cloned = await admin.agents.cloneForWorkspace('agt_01...', 'ws_02...');
     */
    cloneForWorkspace: (agentId: string, targetWorkspaceId: string, options?: RequestOptions) => Promise<Agent>;
    /**
     * Creates a new agent.
     *
     * @param attributes - Agent attributes (name, workspace_id, etc.).
     * @param options - Optional request options.
     * @returns The created Agent.
     *
     * @example
     * const agent = await admin.agents.create({ name: 'My Agent', workspace_id: 'ws_01...' });
     */
    create: (attributes: CreateAgentAttributes, options?: RequestOptions) => Promise<Agent>;
    /**
     * Updates an agent by ID.
     *
     * @param id - The UUID of the agent.
     * @param attributes - Attributes to update.
     * @param options - Optional request options.
     * @returns The updated Agent.
     *
     * @example
     * await admin.agents.update('agt_01...', { name: 'Renamed Agent' });
     */
    update: (id: string, attributes: UpdateAgentAttributes, options?: RequestOptions) => Promise<Agent>;
    /**
     * Permanently deletes an agent by ID.
     *
     * @param id - The UUID of the agent to delete.
     * @param options - Optional request options.
     * @returns True on successful deletion.
     *
     * @example
     * await admin.agents.delete('agt_01...');
     */
    delete: (id: string, options?: RequestOptions) => Promise<true>;
    /**
     * Exports an agent to a portable JSON bundle.
     *
     * @param id - The UUID of the agent to export.
     * @param options - Optional request options.
     * @returns The export bundle payload.
     *
     * @example
     * const bundle = await admin.agents.export('agt_01...');
     */
    export: (id: string, options?: RequestOptions) => Promise<AgentExportBundle>;
    /**
     * Imports an agent from a portable export bundle.
     *
     * @param data - The export bundle object.
     * @param options - Optional request options.
     * @returns The newly created Agent.
     *
     * @example
     * const imported = await admin.agents.import(exportBundle);
     */
    import: (data: AgentExportBundle, options?: RequestOptions) => Promise<Agent>;
    /**
     * Runs an agent against a test input and returns the result.
     *
     * @param id - The UUID of the agent.
     * @param attributes - Test attributes (input, expected_output, etc.).
     * @param options - Optional request options.
     * @returns Test result payload.
     *
     * @example
     * const result = await admin.agents.test('agt_01...', { input: { text: '...' } });
     */
    test: (id: string, attributes: TestAgentAttributes, options?: RequestOptions) => Promise<AgentTestResult>;
    /**
     * Validates an agent's configuration without publishing.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns Validation result with any errors or warnings.
     *
     * @example
     * const result = await admin.agents.validate('agt_01...');
     */
    validate: (id: string, options?: RequestOptions) => Promise<Agent>;
    /**
     * Runs a training job (fine-tuning) on the agent using its examples.
     *
     * @param id - The UUID of the agent.
     * @param attributes - Training configuration attributes.
     * @param options - Optional request options.
     * @returns Training job status payload.
     *
     * @example
     * await admin.agents.teach('agt_01...', { epochs: 3 });
     */
    teach: (id: string, attributes: TeachAttributes, options?: RequestOptions) => Promise<Agent>;
    /**
     * Publishes a new immutable version from the agent's current state.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns The newly created AgentVersion.
     *
     * @example
     * const version = await admin.agents.publishVersion('agt_01...');
     */
    publishVersion: (id: string, options?: RequestOptions) => Promise<AgentVersion>;
    /**
     * Restores a previously published version as the active version.
     *
     * @param id - The UUID of the agent.
     * @param attributes - Must include `version_id` of the version to restore.
     * @param options - Optional request options.
     * @returns The restored AgentVersion.
     *
     * @example
     * const version = await admin.agents.restoreVersion('agt_01...', { version_id: 'ver_01...' });
     */
    restoreVersion: (id: string, attributes: RestoreVersionAttributes, options?: RequestOptions) => Promise<AgentVersion>;
    /**
     * Analyzes training examples and returns insights.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns Training analysis result.
     *
     * @example
     * const analysis = await admin.agents.analyzeTraining('agt_01...');
     */
    analyzeTraining: (id: string, options?: RequestOptions) => Promise<TrainingAnalytics>;
    /**
     * Retrieves usage statistics for a single agent.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns Usage data for the agent.
     *
     * @example
     * const usage = await admin.agents.usage('agt_01...');
     */
    usage: (id: string, options?: RequestOptions) => Promise<AgentUsage>;
    /**
     * Retrieves usage information for all agents.
     *
     * @param options - Optional request options.
     * @returns Array of usage data for all agents.
     *
     * @example
     * const allUsage = await admin.agents.usageAll();
     */
    usageAll: (options?: RequestOptions) => Promise<AgentUsage[]>;
    /**
     * Retrieves execution and performance statistics for an agent.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns Statistics payload.
     *
     * @example
     * const stats = await admin.agents.stats('agt_01...');
     */
    stats: (id: string, options?: RequestOptions) => Promise<AgentStats>;
    /**
     * Retrieves training statistics for a single agent.
     *
     * @param id - The UUID of the agent.
     * @param options - Optional request options.
     * @returns Training statistics data.
     *
     * @example
     * const stats = await admin.agents.trainingStats('agt_01...');
     */
    trainingStats: (id: string, options?: RequestOptions) => Promise<AgentTrainingStats>;
    /**
     * Sub-namespace for managing immutable agent versions.
     */
    versions: {
        /**
         * Lists all agent versions.
         *
         * @param options - Optional request options.
         * @returns Array of AgentVersion objects.
         *
         * @example
         * const versions = await admin.agents.versions.list();
         */
        list: (options?: RequestOptions) => Promise<AgentVersion[]>;
        /**
         * Fetches a single agent version by ID.
         *
         * @param id - The UUID of the agent version.
         * @param options - Optional request options.
         * @returns The AgentVersion record.
         *
         * @example
         * const version = await admin.agents.versions.get('ver_01...');
         */
        get: (id: string, options?: RequestOptions) => Promise<AgentVersion>;
        /**
         * Permanently deletes an agent version.
         *
         * @param id - The UUID of the version to delete.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.versions.delete('ver_01...');
         */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
        /**
         * Creates a new agent version snapshot.
         *
         * @param attributes - Version attributes (agent_id, prompt_template, fields, etc.).
         * @param options - Optional request options.
         * @returns The newly created AgentVersion.
         *
         * @example
         * const version = await admin.agents.versions.create({ agent_id: 'agt_01...', ... });
         */
        create: (attributes: CreateAgentVersionAttributes, options?: RequestOptions) => Promise<AgentVersion>;
        /**
         * Marks a system field as selected for this version.
         *
         * @param id - The UUID of the agent version.
         * @param fieldName - The name of the system field to add (e.g. `_filename`).
         * @param options - Optional request options.
         * @returns The updated AgentVersion.
         *
         * @example
         * await admin.agents.versions.addSystemField('ver_01...', '_filename');
         */
        addSystemField: (id: string, fieldName: string, options?: RequestOptions) => Promise<AgentVersion>;
        /**
         * Removes a system field from the selected set for this version.
         *
         * @param id - The UUID of the agent version.
         * @param fieldName - The name of the system field to remove (e.g. `_filename`).
         * @param options - Optional request options.
         * @returns The updated AgentVersion.
         *
         * @example
         * await admin.agents.versions.removeSystemField('ver_01...', '_filename');
         */
        removeSystemField: (id: string, fieldName: string, options?: RequestOptions) => Promise<AgentVersion>;
        /**
         * Sets the full list of selected system fields for this version.
         *
         * @param id - The UUID of the agent version.
         * @param fieldNames - Array of system field names to set (e.g. `['_filename', '_pages']`).
         * @param options - Optional request options.
         * @returns The updated AgentVersion.
         *
         * @example
         * await admin.agents.versions.setSystemFields('ver_01...', ['_filename', '_pages']);
         */
        setSystemFields: (id: string, fieldNames: string[], options?: RequestOptions) => Promise<AgentVersion>;
        /**
         * Retrieves performance metrics for an agent version.
         *
         * @param id - The UUID of the agent version.
         * @param options - Optional request options.
         * @returns Metrics data for the version.
         *
         * @example
         * const metrics = await admin.agents.versions.metrics('ver_01...');
         */
        metrics: (id: string, options?: RequestOptions) => Promise<AgentStats>;
        /**
         * Lists revision history for an agent version.
         *
         * @param id - The UUID of the agent version.
         * @param options - Optional request options.
         * @returns Array of revision records.
         *
         * @example
         * const revisions = await admin.agents.versions.revisions('ver_01...');
         */
        revisions: (id: string, options?: RequestOptions) => Promise<AgentVersionRevision[]>;
        /**
         * Fetches a single revision record by ID.
         *
         * @param id - The UUID of the revision.
         * @param options - Optional request options.
         * @returns The revision record.
         *
         * @example
         * const revision = await admin.agents.versions.getRevision('rev_01...');
         */
        getRevision: (id: string, options?: RequestOptions) => Promise<AgentVersionRevision>;
        /**
         * Lists all revisions across all agent versions.
         *
         * @param options - Optional request options.
         * @returns Array of revision records.
         *
         * @example
         * const revisions = await admin.agents.versions.listAllRevisions();
         */
        listAllRevisions: (options?: RequestOptions) => Promise<AgentVersionRevision[]>;
        /**
         * Compares two agent versions side-by-side.
         *
         * @param versionAId - UUID of the first version.
         * @param versionBId - UUID of the second version.
         * @param options - Optional request options.
         * @returns Comparison result with schema_diff and prompt_diff.
         *
         * @example
         * const diff = await admin.agents.versions.compare('ver_A...', 'ver_B...');
         */
        compare: (versionAId: string, versionBId: string, options?: RequestOptions) => Promise<AgentVersionComparison>;
        /**
         * Sub-namespace for managing schema versions within an agent.
         */
        schemaVersions: {
            /**
             * Lists all schema versions for an agent.
             *
             * @param agentId - The UUID of the agent.
             * @param options - Optional request options.
             * @returns Array of schema version records.
             *
             * @example
             * const versions = await admin.agents.versions.schemaVersions.list('agt_01...');
             */
            list: (agentId: string, options?: RequestOptions) => Promise<AgentVersion[]>;
            /**
             * Creates a new schema version for an agent.
             *
             * @param agentId - The UUID of the agent.
             * @param attributes - Schema version attributes.
             * @param options - Optional request options.
             * @returns The newly created schema version.
             *
             * @example
             * const sv = await admin.agents.versions.schemaVersions.create('agt_01...', { output_schema: { type: 'object', properties: {} } });
             */
            create: (agentId: string, attributes: CreateSchemaVersionAttributes, options?: RequestOptions) => Promise<AgentVersion>;
            /**
             * Activates a schema version, making it the live version.
             *
             * @param agentId - The UUID of the agent.
             * @param versionId - The UUID of the schema version to activate.
             * @param options - Optional request options.
             * @returns The activated schema version.
             *
             * @example
             * await admin.agents.versions.schemaVersions.activate('agt_01...', 'ver_01...');
             */
            activate: (agentId: string, versionId: string, options?: RequestOptions) => Promise<AgentVersion>;
            /**
             * Updates an existing schema version.
             *
             * @param agentId - The UUID of the agent.
             * @param versionId - The UUID of the schema version to update.
             * @param attributes - Attributes to update.
             * @param options - Optional request options.
             * @returns The updated schema version.
             *
             * @example
             * await admin.agents.versions.schemaVersions.update('agt_01...', 'ver_01...', { output_schema: { type: 'object', properties: {} } });
             */
            update: (agentId: string, versionId: string, attributes: UpdateSchemaVersionAttributes, options?: RequestOptions) => Promise<AgentVersion>;
        };
    };
    /**
     * Sub-namespace for managing training examples attached to agents.
     */
    training: {
        /**
         * Lists all training examples.
         *
         * @param options - Optional request options.
         * @returns Array of TrainingExample objects.
         *
         * @example
         * const examples = await admin.agents.training.list();
         */
        list: (options?: RequestOptions) => Promise<TrainingExample[]>;
        /**
         * Fetches a single training example by ID.
         *
         * @param id - The UUID of the training example.
         * @param options - Optional request options.
         * @returns The TrainingExample record.
         *
         * @example
         * const example = await admin.agents.training.get('tex_01...');
         */
        get: (id: string, options?: RequestOptions) => Promise<TrainingExample>;
        /**
         * Creates a new training example.
         *
         * @param attributes - Training example attributes (agent_id, input_text, output_json, etc.).
         * @param options - Optional request options.
         * @returns The created TrainingExample.
         *
         * @example
         * const example = await admin.agents.training.create({ agent_id: 'agt_01...', input_text: '...', output_json: {} });
         */
        create: (attributes: CreateTrainingExampleAttributes, options?: RequestOptions) => Promise<TrainingExample>;
        /**
         * Updates a training example's attributes.
         *
         * @param id - The UUID of the training example.
         * @param attributes - Attributes to update.
         * @param options - Optional request options.
         * @returns The updated TrainingExample.
         *
         * @example
         * const updated = await admin.agents.training.update('tex_01...', { label: 'reviewed' });
         */
        update: (id: string, attributes: UpdateTrainingExampleAttributes, options?: RequestOptions) => Promise<TrainingExample>;
        /**
         * Deletes a training example.
         *
         * @param id - The UUID of the training example to delete.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.training.delete('tex_01...');
         */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
        /**
         * Creates multiple training examples for one agent in a single batch operation.
         *
         * @param agentId - The UUID of the agent the examples belong to.
         * @param examples - Array of training example attribute objects.
         * @param options - Optional request options.
         * @returns Array of created TrainingExample objects.
         *
         * @example
         * const created = await admin.agents.training.bulkCreate('agt_01...', [
         *   { input_text: '...', output_json: {} },
         * ]);
         */
        bulkCreate: (agentId: string, examples: CreateTrainingExampleAttributes[], options?: RequestOptions) => Promise<TrainingExample[]>;
        /**
         * Deletes multiple training examples for one agent in a single batch operation.
         *
         * @param agentId - The UUID of the agent the examples belong to.
         * @param ids - Array of training example UUIDs to delete.
         * @param options - Optional request options.
         * @returns Deletion result payload.
         *
         * @example
         * await admin.agents.training.bulkDelete('agt_01...', ['tex_01...', 'tex_02...']);
         */
        bulkDelete: (agentId: string, ids: string[], options?: RequestOptions) => Promise<BulkDeleteResult>;
        /**
         * Searches training examples by semantic similarity.
         *
         * The query string is embedded server-side; you do not need to compute
         * embeddings client-side.
         *
         * @param agentId - The UUID of the agent whose training examples to search.
         * @param query - The search query text.
         * @param limit - Optional maximum number of results to return (default 5).
         * @param options - Optional request options.
         * @returns Array of matching TrainingExample objects.
         *
         * @example
         * const results = await admin.agents.training.search('agt_01...', 'invoice total');
         */
        search: (agentId: string, query: string, limit?: number, options?: RequestOptions) => Promise<TrainingExample[]>;
        /**
         * Lists training examples for a specific agent.
         *
         * @param agentId - The UUID of the agent.
         * @param options - Optional request options.
         * @returns Array of training examples for the agent.
         *
         * @example
         * const examples = await admin.agents.training.listForAgent('agt_01...');
         */
        listForAgent: (agentId: string, options?: RequestOptions) => Promise<TrainingExample[]>;
        /**
         * Deletes a training example for a specific agent.
         *
         * @param agentId - The UUID of the agent.
         * @param exampleId - The UUID of the training example.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.training.deleteForAgent('agt_01...', 'tex_01...');
         */
        deleteForAgent: (agentId: string, exampleId: string, options?: RequestOptions) => Promise<true>;
        /**
         * Sub-namespace for managing training sessions.
         */
        sessions: {
            /**
             * Lists training sessions for a specific agent.
             *
             * @param agentId - The UUID of the agent.
             * @param options - Optional request options.
             * @returns Array of training session records.
             *
             * @example
             * const sessions = await admin.agents.training.sessions.list('agt_01...');
             */
            list: (agentId: string, options?: RequestOptions) => Promise<TrainingSession[]>;
            /**
             * Fetches a single training session by ID.
             *
             * @param id - The UUID of the training session.
             * @param options - Optional request options.
             * @returns The training session record.
             *
             * @example
             * const session = await admin.agents.training.sessions.get('ts_01...');
             */
            get: (id: string, options?: RequestOptions) => Promise<TrainingSession>;
            /**
             * Deletes a training session.
             *
             * @param id - The UUID of the training session.
             * @param options - Optional request options.
             * @returns True on successful deletion.
             *
             * @example
             * await admin.agents.training.sessions.delete('ts_01...');
             */
            delete: (id: string, options?: RequestOptions) => Promise<true>;
        };
    };
    /**
     * Sub-namespace for field templates — reusable field definitions.
     */
    fieldTemplates: {
        /**
         * Lists all available field templates.
         *
         * @param options - Optional request options.
         * @returns Array of field template objects.
         *
         * @example
         * const templates = await admin.agents.fieldTemplates.list();
         */
        list: (options?: RequestOptions) => Promise<FieldTemplate[]>;
        /**
         * Fetches a single field template by ID.
         *
         * @param id - The UUID of the field template.
         * @param options - Optional request options.
         * @returns The field template object.
         *
         * @example
         * const template = await admin.agents.fieldTemplates.get('ftpl_01...');
         */
        get: (id: string, options?: RequestOptions) => Promise<FieldTemplate>;
        /**
         * Creates a new field template.
         *
         * @param attributes - Field template attributes (name, category, field_type, etc.).
         * @param options - Optional request options.
         * @returns The created field template object.
         *
         * @example
         * const template = await admin.agents.fieldTemplates.create({ name: 'Invoice Total', category: 'finance', field_type: 'currency' });
         */
        create: (attributes: CreateFieldTemplateAttributes, options?: RequestOptions) => Promise<FieldTemplate>;
        /**
         * Permanently deletes a field template by ID.
         *
         * @param id - The UUID of the field template to delete.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.fieldTemplates.delete('ftpl_01...');
         */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    /**
     * Manage agent deployments — bindings from catalog agents to applications.
     */
    deployments: {
        /**
         * Lists all agent deployments.
         *
         * @param options - Optional request options (pagination, filters).
         * @returns A paginated list of agent deployments.
         *
         * @example
         * const deployments = await admin.agents.deployments.list();
         */
        list: (options?: RequestOptions) => Promise<AgentDeployment[]>;
        /**
         * Retrieves a single agent deployment by ID.
         *
         * @param id - The UUID of the deployment.
         * @param options - Optional request options.
         * @returns The agent deployment.
         *
         * @example
         * const deployment = await admin.agents.deployments.get('dep_01...');
         */
        get: (id: string, options?: RequestOptions) => Promise<AgentDeployment>;
        /**
         * Creates a new agent deployment.
         *
         * @param attributes - Deployment attributes (catalog_agent_id, application_id, etc.).
         * @param options - Optional request options.
         * @returns The created deployment.
         *
         * @example
         * const deployment = await admin.agents.deployments.create({
         *   catalog_agent_id: 'agent_01...',
         *   effective_version_id: 'ver_01...',
         *   application_id: 'app_01...',
         *   tenant_id: 'ten_01...',
         * });
         */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<AgentDeployment>;
        /**
         * Updates an agent deployment.
         *
         * @param id - The UUID of the deployment.
         * @param attributes - Attributes to update.
         * @param options - Optional request options.
         * @returns The updated deployment.
         *
         * @example
         * await admin.agents.deployments.update('dep_01...', { auto_deploy_agents: true });
         */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<AgentDeployment>;
        /**
         * Accepts a pending version update on a deployment.
         *
         * @param id - The UUID of the deployment with an available update.
         * @param options - Optional request options.
         * @returns The updated deployment with new effective version.
         *
         * @example
         * await admin.agents.deployments.acceptUpdate('dep_01...');
         */
        acceptUpdate: (id: string, options?: RequestOptions) => Promise<AgentDeployment>;
        /**
         * Permanently deletes an agent deployment.
         *
         * @param id - The UUID of the deployment to delete.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.deployments.delete('dep_01...');
         */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    /**
     * Manage workspace-level agent config overrides.
     */
    workspaceConfigs: {
        /**
         * Lists all workspace agent configs.
         *
         * @param options - Optional request options (pagination, filters).
         * @returns A paginated list of workspace agent configs.
         *
         * @example
         * const configs = await admin.agents.workspaceConfigs.list();
         */
        list: (options?: RequestOptions) => Promise<WorkspaceAgentConfig[]>;
        /**
         * Retrieves a single workspace agent config by ID.
         *
         * @param id - The UUID of the config.
         * @param options - Optional request options.
         * @returns The workspace agent config.
         *
         * @example
         * const config = await admin.agents.workspaceConfigs.get('wac_01...');
         */
        get: (id: string, options?: RequestOptions) => Promise<WorkspaceAgentConfig>;
        /**
         * Creates a new workspace agent config.
         *
         * @param attributes - Config attributes (agent_deployment_id, workspace_id, overrides).
         * @param options - Optional request options.
         * @returns The created config.
         *
         * @example
         * const config = await admin.agents.workspaceConfigs.create({
         *   agent_deployment_id: 'dep_01...',
         *   workspace_id: 'ws_01...',
         *   overrides: { prompt_template: 'Custom prompt...' },
         * });
         */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<WorkspaceAgentConfig>;
        /**
         * Updates a workspace agent config.
         *
         * @param id - The UUID of the config.
         * @param attributes - Attributes to update.
         * @param options - Optional request options.
         * @returns The updated config.
         *
         * @example
         * await admin.agents.workspaceConfigs.update('wac_01...', {
         *   overrides: { prompt_template: 'Updated prompt...' },
         * });
         */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<WorkspaceAgentConfig>;
        /**
         * Permanently deletes a workspace agent config.
         *
         * @param id - The UUID of the config to delete.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.workspaceConfigs.delete('wac_01...');
         */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    /**
     * Manage agent souls — personality templates that govern agent behavior.
     */
    souls: {
        /**
         * Lists all agent souls.
         *
         * @param options - Optional request options (pagination, filters).
         * @returns A list of agent souls.
         *
         * @example
         * const souls = await admin.agents.souls.list();
         */
        list: (options?: RequestOptions) => Promise<AgentSoul[]>;
        /**
         * Retrieves a single agent soul by ID.
         *
         * @param id - The UUID of the soul.
         * @param options - Optional request options.
         * @returns The agent soul.
         *
         * @example
         * const soul = await admin.agents.souls.get('soul_01...');
         */
        get: (id: string, options?: RequestOptions) => Promise<AgentSoul>;
        /**
         * Creates a new agent soul.
         *
         * @param attributes - Soul attributes (name, content, scope_type, etc.).
         * @param options - Optional request options.
         * @returns The created soul.
         *
         * @example
         * const soul = await admin.agents.souls.create({
         *   name: 'Professional',
         *   content: 'You are a professional, courteous assistant...',
         *   scope_type: 'workspace',
         *   workspace_id: 'ws_01...',
         * });
         */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<AgentSoul>;
        /**
         * Updates an agent soul.
         *
         * @param id - The UUID of the soul.
         * @param attributes - Attributes to update.
         * @param options - Optional request options.
         * @returns The updated soul.
         *
         * @example
         * await admin.agents.souls.update('soul_01...', { content: 'Updated guidelines...' });
         */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<AgentSoul>;
        /**
         * Permanently deletes an agent soul.
         *
         * @param id - The UUID of the soul to delete.
         * @param options - Optional request options.
         * @returns True on successful deletion.
         *
         * @example
         * await admin.agents.souls.delete('soul_01...');
         */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    /**
     * Browse the agent tool catalog.
     */
    toolCatalog: {
        /**
         * Lists all available agent tools.
         *
         * @param options - Optional request options (pagination, filters).
         * @returns A list of tool catalog entries.
         *
         * @example
         * const tools = await admin.agents.toolCatalog.list();
         */
        list: (options?: RequestOptions) => Promise<Record<string, unknown>[]>;
    };
};
/** Return type for the agents namespace — supports per-domain type imports. */
export type AgentsAPI = ReturnType<typeof createAgentsNamespace>;
//# sourceMappingURL=agents.d.ts.map