import type { CustomMessage } from "../messages.js";
import type { SendMessageOptions } from "../extensions/index.js";
import { AsyncJobManager } from "./job-manager.js";
import type { AsyncJobDeliveryHandler } from "./types.js";
export interface SessionAsyncJobManagerHandle {
    manager: AsyncJobManager;
    owns: boolean;
    sessionId: symbol;
}
interface AsyncDeliverySession {
    readonly isStreaming?: boolean;
    sendCustomMessage<T>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details">, options?: SendMessageOptions): Promise<void>;
}
export declare function createSessionAsyncDeliveryHandler(session: AsyncDeliverySession, manager?: AsyncJobManager, sessionId?: symbol): AsyncJobDeliveryHandler;
export declare function createSessionAsyncJobManager(session: AsyncDeliverySession): SessionAsyncJobManagerHandle;
export declare function disposeSessionAsyncJobManager(manager: AsyncJobManager | undefined, sessionId: symbol | undefined): void;
export {};
//# sourceMappingURL=session-manager.d.ts.map