/**
 * ACP Agent Manifest — describes agent capabilities.
 * Fetched from GET /agent/card per the ACP spec.
 */
export interface ACPManifest {
    name: string;
    description?: string;
    version?: string;
    capabilities: ACPCapability[];
}
export interface ACPCapability {
    name: string;
    description?: string;
    inputSchema?: Record<string, unknown>;
    outputSchema?: Record<string, unknown>;
}
/** ACP Task creation request (POST /tasks) */
export interface ACPCreateTaskRequest {
    input: {
        prompt: string;
        history?: Array<{
            role: string;
            content: string;
        }>;
    };
    mode: 'sync' | 'stream';
    /**
     * Stable session identifier — passed through so the remote agent can
     * thread context across multi-turn conversations. Not part of the
     * upstream ACP spec yet; the remote may ignore it (the field is in
     * the request body, not headers, so unknown-field-tolerant parsers
     * pass it through fine).
     */
    session_id?: string;
}
/** ACP Task response */
export interface ACPTaskResponse {
    id: string;
    status: 'pending' | 'running' | 'completed' | 'failed';
    output?: {
        content: string;
    };
    error?: {
        code: string;
        message: string;
    };
}
/**
 * Configuration for a remote ACP agent.
 * Stored in ~/.agim/config.json under the "acpAgents" key.
 */
export interface ACPAgentConfig {
    name: string;
    aliases?: string[];
    endpoint: string;
    auth?: {
        type: 'none' | 'apikey' | 'bearer';
        token?: string;
    };
    enabled?: boolean;
}
//# sourceMappingURL=types.d.ts.map