import type { UserContent } from "ai";
import type { ActivityObserverConfig, SessionAuthContext, SessionCallback, TurnPolicy, TaskDeliveryPolicy } from "#channel/types.js";
import type { Session } from "#channel/session.js";
import { type UploadPolicy } from "#public/channels/upload-policy.js";
import { type ValidatedInputResponse } from "#shared/input.js";
import { type JsonObject } from "#shared/json.js";
import { type ParsedCreateBody } from "#eve-channel/create-request.js";
/** Replay-stable identity for one authenticated create operation. */
export declare function deriveOperationContinuationToken(input: {
    readonly auth: SessionAuthContext;
    readonly operationId: string;
}): Promise<string>;
export declare function parseCreateBody(payload: Record<string, unknown>): ParsedCreateBody | Response;
interface ParsedSessionMessageBody {
    taskDeliveryPolicy?: TaskDeliveryPolicy;
    activityObserver?: ActivityObserverConfig;
    callback?: SessionCallback;
    message?: string | UserContent;
    inputResponses?: readonly ValidatedInputResponse[];
    context?: readonly string[];
    outputSchema?: JsonObject;
    turnPolicy?: TurnPolicy;
}
export declare function parseSessionMessageBody(payload: Record<string, unknown>): ParsedSessionMessageBody | Response;
interface ParsedCancelTurnBody {
    taskId?: string;
    tasks?: boolean;
    turnId?: string;
}
export declare function parseCancelTurnBody(req: Request): Promise<ParsedCancelTurnBody | Response>;
export declare function parseJsonRequest(req: Request): Promise<Record<string, unknown> | Response>;
export declare function parseResetBody(req: Request): Promise<{
    readonly reason?: string;
} | Response>;
export declare function parseSessionControlBody(req: Request): Promise<Record<string, unknown> | Response>;
export declare function parseOptionalJsonRequest(req: Request): Promise<Record<string, unknown> | Response>;
export declare function rejectSessionContinuationToken(payload: Record<string, unknown>): Response | null;
export declare function requireSessionId(params: Readonly<Record<string, string>>): string | Response;
export declare function createSessionStreamResponse(request: Request, session: Session): Promise<Response>;
export declare function checkUploadPolicy(body: ParsedCreateBody | ParsedSessionMessageBody, policy: UploadPolicy): Response | null;
export declare function parseIncludeTailIndex(request: Request): boolean;
export declare function parseStartIndex(request: Request): number | undefined | Response;
export {};
