import { type INode, type IPinData, type IWorkflowBase } from 'n8n-workflow';
export declare function identifyNodesForPinData(workflow: IWorkflowBase, exclusionSet?: Set<string>): INode[];
export interface TriggerBinaryRequirement {
    propertyName: string;
    contentType: string;
    filename: string;
}
export declare function detectBinaryDependencies(workflow: IWorkflowBase): TriggerBinaryRequirement | undefined;
export type AutoPinReason = 'protocol_binary' | 'unsupported_vendor_llm' | 'unsafe_baseurl_override' | 'shared_vendor_llm_subnode';
export interface AutoPinEntry {
    root: string;
    subNode: string;
    subNodeType: string;
    reason: AutoPinReason;
}
export interface VendorLlmRouting {
    subNodeToRoot: Map<string, string>;
    rootToSubNode: Map<string, INode>;
}
export declare function buildVendorLlmRouting(workflow: IWorkflowBase, unpinNodes: string[]): VendorLlmRouting;
export interface PartitionedAiRoots {
    unpinNodes: string[];
    pinNodes: string[];
    autoPinned: AutoPinEntry[];
}
export declare function partitionAiRoots(workflow: IWorkflowBase, explicitPinNodes?: string[]): PartitionedAiRoots;
export declare function identifyNodesForHints(workflow: IWorkflowBase): INode[];
export interface MockHints {
    globalContext: string;
    nodeHints: Record<string, string>;
    triggerContent: Record<string, unknown>;
    warnings: string[];
    bypassPinData: IPinData;
}
export interface GenerateMockHintsOptions {
    workflow: IWorkflowBase;
    nodeNames: string[];
    scenarioHints?: string;
}
export declare function generateMockHints(options: GenerateMockHintsOptions): Promise<MockHints>;
