/**
 * @license
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import type { AgentEvent, AgentEventCommon, AgentEventData, AgentSend, AgentSession } from './types.js';
export type MockAgentEvent = Partial<AgentEventCommon> & AgentEventData;
export interface PushResponseOptions {
    /** If true, does not automatically add a stream_end event. */
    keepOpen?: boolean;
}
/**
 * A mock implementation of AgentSession for testing.
 * Allows queuing responses that will be yielded when send() is called.
 */
export declare class MockAgentSession implements AgentSession {
    private _events;
    private _responses;
    private _streams;
    private _activeStreamIds;
    private _lastStreamId?;
    private _nextEventId;
    private _streamResolvers;
    title?: string;
    model?: string;
    config?: Record<string, unknown>;
    constructor(initialEvents?: AgentEvent[]);
    /**
     * All events that have occurred in this session so far.
     */
    get events(): AgentEvent[];
    /**
     * Queues a sequence of events to be "emitted" by the agent in response to the
     * next send() call.
     */
    pushResponse(events: MockAgentEvent[], options?: PushResponseOptions): void;
    /**
     * Appends events to an existing stream and notifies any waiting listeners.
     */
    pushToStream(streamId: string, events: MockAgentEvent[], options?: {
        close?: boolean;
    }): void;
    private _notify;
    send(payload: AgentSend): Promise<{
        streamId: string;
    }>;
    stream(options?: {
        streamId?: string;
        eventId?: string;
    }): AsyncIterableIterator<AgentEvent>;
    abort(): Promise<void>;
}
