import type { Agent, AgentCapabilities, AgentInput, AgentType, BaseAgentConfig, BaseAgentResult } from '../types/agent/index.js';
import type { RunEventListener } from '../types/run/index.js';
export interface DefineAgentOptions<TConfig extends BaseAgentConfig = BaseAgentConfig, TResult extends BaseAgentResult = BaseAgentResult> {
    type: AgentType;
    id: string;
    name: string;
    version: string;
    category: string;
    description: string;
    capabilities?: Partial<AgentCapabilities>;
    run(input: AgentInput, config: TConfig, listener?: RunEventListener): Promise<TResult>;
    cancel?(): Promise<void>;
}
export declare function defineAgent<TConfig extends BaseAgentConfig = BaseAgentConfig, TResult extends BaseAgentResult = BaseAgentResult>(options: DefineAgentOptions<TConfig, TResult>): Agent<TConfig, TResult>;
//# sourceMappingURL=defineAgent.d.ts.map