import { Connection, SfProject } from '@salesforce/core';
import { type AgentCreateConfig, type AgentCreateResponse, type AgentJobSpec, type AgentJobSpecCreateConfig } from './types.js';
/**
 * Events emitted during Agent.create() for consumers to listen to and keep track of progress
 *
 * @type {{Creating: string, Previewing: string, Retrieving: string}}
 */
export declare const AgentCreateLifecycleStages: {
    Creating: string;
    Previewing: string;
    Retrieving: string;
};
/**
 * Class for creating Agents and agent specs.
 */
export declare class Agent {
    private project;
    private logger;
    private maybeMock;
    private readonly connection;
    /**
     * Create an Agent instance
     *
     * @param {Connection} connection
     * @param {SfProject} project
     */
    constructor(connection: Connection, project: SfProject);
    /**
     * List all agents in the current project.
     */
    static list(project: SfProject): Promise<string[]>;
    /**
     * Creates an agent from a configuration, optionally saving the agent in an org.
     *
     * @param config a configuration for creating or previewing an agent
     * @returns the agent definition
     */
    create(config: AgentCreateConfig): Promise<AgentCreateResponse>;
    /**
     * Create an agent spec from provided data.
     *
     * @param config The configuration used to generate an agent spec.
     */
    createSpec(config: AgentJobSpecCreateConfig): Promise<AgentJobSpec>;
    private verifyAgentSpecConfig;
}
/**
 * Generate an API name from an agent name. Matches what the UI does.
 */
export declare const generateAgentApiName: (agentName: string) => string;
