import { Connection, SfProject } from '@salesforce/core'; import { type AgentCreateConfig, type AgentCreateResponse, type AgentJobSpec, type AgentJobSpecCreateConfig, type BotMetadata, PreviewableAgent, ProductionAgentOptions, ScriptAgentOptions } from './types'; import { ScriptAgent } from './agents/scriptAgent'; import { ProductionAgent } from './agents/productionAgent'; /** Instance type returned from Agent.init(); has setSessionId, getHistoryDir, preview, etc. */ export type AgentInstance = ScriptAgent | ProductionAgent; /** * 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; }; /** * A client side representation of an agent. Also provides utilities * such as creating agents, listing agents, and creating agent specs. * * **Examples** * * Create a new instance and get the ID (uses the `Bot` ID): * * `const id = await Agent.init({connection, project, apiNameOrId: 'myBot' }).getId();` * * Create a new instance of an agent script based agent * * const agent = await Agent.init({connection, project, aabName: 'myBot' }); * * Start a preview session * * const agent = await Agent.init({connection, project, aabName: 'myBot' }); * await agent.preview.start(); * await agent.preview.send('hi there'); * * Create a new agent in the org: * * `const myAgent = await Agent.create(connection, project, options);` * * List all agents in the local project: * * `const agentList = await Agent.list(project);` */ export declare class Agent { static init(options: ScriptAgentOptions): Promise; static init(options: ProductionAgentOptions): Promise; /** * List all agents in the current project. * * @param project a `SfProject` for a local DX project. */ static list(project: SfProject): Promise; /** * Lists all agents in the org. * * @param connection a `Connection` to an org. * @returns the list of agents */ static listRemote(connection: Connection): Promise; /** * Lists all agents available for preview, combining agents from the org and local script files. * * @param connection a `Connection` to an org. * @param project a `SfProject` for a local DX project. * @returns the list of previewable agents with their source (org or script) */ static listPreviewable(connection: Connection, project: SfProject): Promise; /** * Creates an agent from a configuration, optionally saving the agent in an org. * * @param connection a `Connection` to an org. * @param project a `SfProject` for a local DX project. * @param config a configuration for creating or previewing an agent. * @returns the agent definition */ static create(connection: Connection, project: SfProject, config: AgentCreateConfig): Promise; /** * Create an agent spec from provided data. * * @param connection a `Connection` to an org. * @param config The configuration used to generate an agent spec. * @returns the agent job spec */ static createSpec(connection: Connection, config: AgentJobSpecCreateConfig): Promise; } export declare const decodeResponse: (response: T) => T;