import type { AiGatewayConfigDto } from '@n8n/api-types'; import type { User } from '@n8n/db'; import type { INode, IWorkflowBase } from 'n8n-workflow'; import type { CredentialsService } from '../../../../credentials/credentials.service'; import type { NodeTypes } from '../../../../node-types'; import type { AiGatewayService } from '../../../../services/ai-gateway.service'; import type { Telemetry } from '../../../../telemetry'; import { type AiGatewayEligibilityReason } from './ai-gateway-eligibility'; export interface CredentialAssignment { nodeName: string; credentialName: string; credentialType: string; source?: 'user' | 'aiGateway'; } export type SlotSource = 'user' | 'aiGateway' | 'none'; export type ReasonNotAiGateway = AiGatewayEligibilityReason | 'notAvailable'; export interface SlotOutcome { nodeName: string; credentialType: string; source: SlotSource; hadUserCredential: boolean; aiGatewayAvailable: boolean; reasonNotAiGateway?: ReasonNotAiGateway; } export interface AutoAssignResult { assignments: CredentialAssignment[]; skippedHttpNodes: string[]; outcomes: SlotOutcome[]; } export type McpCredentialsAutoassignEventPayload = { user_id: string; tool_name: 'create_workflow_from_code' | 'update_workflow'; node_type: string; credential_type: string; source: SlotSource; had_user_credential: boolean; ai_gateway_available: boolean; reason_not_ai_gateway?: ReasonNotAiGateway; }; export declare function reconcileAiGatewayMarkers(nodes: INode[], nodeTypes: NodeTypes, aiGatewayConfig: AiGatewayConfigDto | undefined): void; export declare function autoPopulateNodeCredentials(workflow: IWorkflowBase, user: User, nodeTypes: NodeTypes, credentialsService: CredentialsService, projectId: string, aiGatewayService?: AiGatewayService): Promise; export declare function trackAutoassignOutcomes(telemetry: Telemetry, userId: string, toolName: 'create_workflow_from_code' | 'update_workflow', outcomes: SlotOutcome[], nodesByName?: Map, workflowId?: string): void; export declare function stripNullCredentialStubs(nodes: INode[]): void;