import type { AutomationRouteBinding } from '../automation/routes.js';
import type { AutomationSurfaceKind } from '../automation/types.js';
import type { ProviderFailurePolicy, ProviderRoutingSelection, UnresolvedModelPolicy } from '../automation/types.js';
import type { ExecutionIntent } from '../runtime/execution-intents.js';
export declare const SHARED_SESSION_INPUT_INTENTS: readonly ["submit", "steer", "follow-up"];
export declare const SHARED_SESSION_INPUT_STATES: readonly ["queued", "delivered", "spawned", "completed", "cancelled", "failed", "rejected"];
export type SharedSessionInputIntent = typeof SHARED_SESSION_INPUT_INTENTS[number];
export type SharedSessionInputState = typeof SHARED_SESSION_INPUT_STATES[number];
export interface SharedSessionHelperModelOverride {
    readonly providerId: string;
    readonly modelId: string;
}
export interface SharedSessionRoutingIntent {
    readonly providerId?: string;
    readonly modelId?: string;
    readonly providerSelection?: ProviderRoutingSelection;
    readonly unresolvedModelPolicy?: UnresolvedModelPolicy;
    readonly providerFailurePolicy?: ProviderFailurePolicy;
    readonly fallbackModels?: readonly string[];
    readonly helperModel?: SharedSessionHelperModelOverride;
    readonly executionIntent?: ExecutionIntent;
    readonly tools?: readonly string[];
    readonly reasoningEffort?: 'instant' | 'low' | 'medium' | 'high';
}
export interface SharedSessionInputRecord {
    readonly id: string;
    readonly sessionId: string;
    readonly intent: SharedSessionInputIntent;
    readonly state: SharedSessionInputState;
    readonly correlationId: string;
    readonly causationId?: string;
    readonly body: string;
    readonly createdAt: number;
    readonly updatedAt: number;
    readonly routeId?: string;
    readonly surfaceKind?: AutomationSurfaceKind;
    readonly surfaceId?: string;
    readonly externalId?: string;
    readonly threadId?: string;
    readonly userId?: string;
    readonly displayName?: string;
    readonly activeAgentId?: string;
    readonly metadata: Record<string, unknown>;
    readonly routing?: SharedSessionRoutingIntent;
    readonly error?: string;
}
export interface SharedSessionContinuationRequest {
    readonly sessionId: string;
    readonly input: SharedSessionInputRecord;
    readonly task: string;
    readonly routeBinding?: AutomationRouteBinding;
}
export interface SharedSessionContinuationResult {
    readonly agentId: string;
}
export type SharedSessionContinuationRunner = (input: SharedSessionContinuationRequest) => SharedSessionContinuationResult | Promise<SharedSessionContinuationResult | null> | null;
export interface SharedSessionCompletion {
    readonly session: {
        readonly id: string;
        readonly activeAgentId?: string;
    };
    readonly continuedInput?: SharedSessionInputRecord;
    readonly continuedAgentId?: string;
}
//# sourceMappingURL=session-intents.d.ts.map