export interface SessionIdentityContract {
    sessionId: string;
    sessionKey: string;
}
export type ModelSelectionReason = "user-selected" | "auto-default" | "failover" | "fallback" | "manual-switch";
export interface RuntimeCapabilitySummaryContract {
    installedCapabilities: string[];
    enabledCapabilities: string[];
    eligibleToolCount?: number;
    ineligibleToolCount?: number;
}
export interface ApprovalRequiredToolContract {
    toolName: string;
    reasonCodes?: string[];
}
export interface RuntimeSessionContract extends SessionIdentityContract {
    createdAt: number;
    lastTouchedAt: number;
    activeRunId: string | null;
    requestedModel?: string;
    resolvedModel?: string;
    modelSelectionReason?: ModelSelectionReason;
    capabilitySnapshotVersion?: string;
    capabilitySummary?: RuntimeCapabilitySummaryContract;
    approvalRequiredTools?: ApprovalRequiredToolContract[];
}
export interface PendingPromptContract extends SessionIdentityContract {
    idempotencyKey: string;
    sentTextLength?: number;
    sentText?: string;
    toolCallIds?: string[];
}
