import type { ModelRef, ThinkingLevel } from "@earendil-works/pi-protocol";
import type { ByteTransportFactory } from "./transport.ts";
export type ConnectionState = "disconnected" | "connecting" | "connected";
export interface ConnectionStateChange {
    state: ConnectionState;
    error?: Error;
}
export type Unsubscribe = () => void;
export type ListenerErrorHandler = (error: Error) => void;
export interface PiClientOptions {
    transportFactory: ByteTransportFactory;
    maxFrameLength?: number;
    /** Reports subscriber failures without allowing them to corrupt client state. */
    onListenerError?: ListenerErrorHandler;
}
export interface CreateSessionOptions {
    cwd?: string;
    name?: string;
    model?: ModelRef;
    thinkingLevel?: ThinkingLevel;
}
//# sourceMappingURL=types.d.ts.map