type ClearableMock = { mockClear(): unknown; }; type ResettableMock = { mockReset(): unknown; }; type ResettableReturnMock = ResettableMock & { mockReturnValue(value: unknown): unknown; }; export type GenerationRuntimeMocks = { createSubsystemLogger: ClearableMock; describeFailoverError: ResettableMock; getProvider: ResettableReturnMock; getProviderEnvVars: ResettableReturnMock; resolveProviderAuthEnvVarCandidates: ResettableReturnMock; isFailoverError: ResettableReturnMock; listProviders: ResettableReturnMock; parseModelRef: ClearableMock; resolveAgentModelFallbackValues: ResettableReturnMock; resolveAgentModelPrimaryValue: ResettableReturnMock; debug: ResettableMock; }; export function resetGenerationRuntimeMocks(mocks: GenerationRuntimeMocks): void { mocks.createSubsystemLogger.mockClear(); mocks.describeFailoverError.mockReset(); mocks.getProvider.mockReset(); mocks.getProviderEnvVars.mockReset(); mocks.getProviderEnvVars.mockReturnValue([]); mocks.resolveProviderAuthEnvVarCandidates.mockReset(); mocks.resolveProviderAuthEnvVarCandidates.mockReturnValue({}); mocks.isFailoverError.mockReset(); mocks.isFailoverError.mockReturnValue(false); mocks.listProviders.mockReset(); mocks.listProviders.mockReturnValue([]); mocks.parseModelRef.mockClear(); mocks.resolveAgentModelFallbackValues.mockReset(); mocks.resolveAgentModelFallbackValues.mockReturnValue([]); mocks.resolveAgentModelPrimaryValue.mockReset(); mocks.resolveAgentModelPrimaryValue.mockReturnValue(undefined); mocks.debug.mockReset(); }