import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs"; import type { ManifestComponentDeletion, ManifestScope } from "./manifest-builder.mjs"; import type { BusinessEventKey } from "./business-event.mjs"; /** Composer supports only runner-identity ACP agents. */ export type ACPAgentIdentityMode = 'runner'; /** A source file in an ACP agent source revision. */ export interface ACPAgentSourceFile { path: string; content: string; kind: string; } /** An event that starts an ACP agent session. */ export interface ACPAgentEventTrigger { /** Stable identifier for this trigger within the agent. */ key: string; /** Business event to subscribe to. Availability is validated during installation. */ eventKey: BusinessEventKey; /** Optional RQL condition evaluated against the event object. @default '' */ rqlFormula?: string; /** Prompt sent to the agent when the event matches. */ promptTemplate: string; /** Whether this trigger receives events. @default true */ enabled?: boolean; } export type ACPAgentEventKey = BusinessEventKey; /** Initialization properties for {@link ACPAgent}. */ export interface ACPAgentProps { /** Company-scoped API name ending in `__c`. */ apiName: string; /** Display name shown in Rippling. */ name: string; /** Human-readable description. */ description: string; /** Identity used when the agent runs. ACP Composer supports only `runner`. */ identityMode: ACPAgentIdentityMode; /** Trigger configuration managed by this manifest. Pass [] for no triggers. */ eventTriggers: ACPAgentEventTrigger[]; /** Source files for the agent's latest revision. */ files: ACPAgentSourceFile[]; /** Path of the source file that starts the agent. */ entrypoint: string; } /** * Defines an Agent Control Plane agent for Composer. * * New agents use their `apiName` as the Composer source handle, so a * source-executed manifest does not need to persist a separate identifier. */ export declare class ACPAgent { static readonly componentType: "ACP_AGENT"; static toDeletionIdentifier(sourceAgentId: string): ManifestComponentDeletion; private readonly _sourceAgentId; private readonly _apiName; private _name; private _description; private _eventTriggers; private _files; private _entrypoint; constructor(scope: ManifestScope, props: ACPAgentProps, sourceAgentId?: string); /** Loads this ACP agent from the active existing-manifest JSON context. */ static loadFromExisting(apiName: string, options?: ExistingManifestContextOptions): ACPAgent; /** @internal Hydrates an ACP agent from existing manifest wire JSON. */ static _fromExistingComponent(scope: ManifestScope, component: Record): ACPAgent; getSourceAgentId(): string; getApiName(): string; setName(name: string): this; setDescription(description: string): this; setIdentity(identityMode: ACPAgentIdentityMode): this; setEventTriggers(eventTriggers: ACPAgentEventTrigger[]): this; setSource(files: ACPAgentSourceFile[], entrypoint: string): this; toDict(): Record; } //# sourceMappingURL=acp-agent.d.mts.map