import { EventEmitter } from "eventemitter3";
import { A2A } from "../../types/index.js";
export declare class StateMachine extends EventEmitter<A2A.Emissions> implements A2A.EventPublisher {
    readonly _contextId: string;
    private readonly _consumer;
    private _currentTask;
    onStart: (context: A2A.Context) => Promise<A2A.Task>;
    onCancel: (update: A2A.Update) => Promise<void>;
    onUpdate: (update: A2A.Update) => Promise<A2A.Task>;
    onError: (error: any) => Promise<void>;
    onComplete: () => Promise<void>;
    constructor(_contextId: string, _consumer: A2A.EventConsumer, _currentTask: A2A.Task);
    get currentTask(): A2A.Task;
    private set currentTask(value);
    get consumer(): A2A.EventConsumer;
    get contextId(): string;
    static create(contextId: string, service: A2A.Service, task: A2A.Task, overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>): StateMachine;
}
