/**
 * Copyright 2025 The Artinet Project
 * SPDX-License-Identifier: Apache-2.0
 */
import { A2A } from "../../types/index.js";
import { ServiceParams } from './factory/service.js';
/**
 * @note We endeavor to remove all optional parameters from below this class.
 * This will allow the service to act as the boundary to our Hexagonal Architecture.
 */
export declare class Service implements A2A.Service {
    protected _agentCard: A2A.AgentCard;
    protected _engine: A2A.Engine;
    protected _connections: A2A.Connections;
    protected _cancellations: A2A.Cancellations;
    protected _tasks: A2A.Tasks;
    protected _contexts: A2A.Contexts;
    protected _streams: A2A.Streams;
    protected _handles: A2A.Handles;
    protected _overrides?: Partial<Omit<A2A.EventConsumer, "contextId">> | undefined;
    constructor(_agentCard: A2A.AgentCard, _engine: A2A.Engine, _connections: A2A.Connections, _cancellations: A2A.Cancellations, _tasks: A2A.Tasks, _contexts: A2A.Contexts, _streams: A2A.Streams, _handles: A2A.Handles, _overrides?: Partial<Omit<A2A.EventConsumer, "contextId">> | undefined);
    get handles(): A2A.Handles;
    set handles(handles: Partial<A2A.Handles>);
    get agentCard(): A2A.AgentCard;
    get engine(): A2A.Engine;
    set engine(engine: A2A.Engine);
    get connections(): A2A.Connections;
    get cancellations(): A2A.Cancellations;
    get tasks(): A2A.Tasks;
    get contexts(): A2A.Contexts;
    set contexts(contexts: A2A.Contexts);
    get streams(): A2A.Streams;
    get overrides(): Partial<Omit<A2A.EventConsumer, 'contextId'>> | undefined;
    set overrides(overrides: Partial<Omit<A2A.EventConsumer, 'contextId'>>);
    execute({ engine, context }: {
        engine: A2A.Engine;
        context: A2A.Context;
    }): Promise<void>;
    getAgentCard(): Promise<A2A.AgentCard>;
    stop(): Promise<void>;
    getTask(params: A2A.TaskQueryParams, options?: A2A.ServiceOptions): Promise<A2A.Task>;
    cancelTask(params: A2A.TaskIdParams, options?: A2A.ServiceOptions): Promise<A2A.Task>;
    sendMessage(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
    sendMessage(message: string | A2A.MessageSendParams['message'], options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
    protected _sendMessage(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
    sendMessageStream(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
    sendMessageStream(message: string, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
    sendMessageStream(params: A2A.MessageSendParams['message'], options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
    /**
     * @deprecated Use sendMessageStream instead
     */
    streamMessage(paramsOrMessage: A2A.MessageSendParams | string, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
    protected _sendMessageStream(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
    resubscribe(params: A2A.TaskIdParams, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
    static create(params: ServiceParams): Service;
}
