export interface GenerateCodeResult {
    code: string;
    imports?: string[];
    requirements?: string[];
}
export interface GenerateCodeContext {
    node: NodeInstance;
    inputs: Record<string, any>;
    settings: Record<string, any>;
    nodeId: string;
    getGlobalInputVarName: (inputId: string) => string | undefined;
}
export interface NodeInstance {
    id: string;
    pluginId: string;
    config: Record<string, any>;
    inputs: string[];
    outputs: string[];
}
export interface Port {
    id: string;
    name: string;
    type: DataType;
    required?: boolean;
}
export interface NodeManifest {
    id: string;
    name: string;
    description: string;
    version: string;
    inputs: Port[];
    outputs: Port[];
    isFlow?: boolean;
    canHaveSubworkflow?: boolean;
}
export declare enum DataType {
    ANY = "Any",
    MODEL = "Model",
    DATASET = "Dataset",
    DATALOADER = "DataLoader",
    OPTIMIZER = "Optimizer",
    LOSS_FUNCTION = "LossFunction",
    TENSOR = "Tensor",
    NUMBER = "Number",
    STRING = "String",
    BOOLEAN = "Boolean",
    ARRAY = "Array",
    OBJECT = "Object",
    TRAIN_DATASET = "TrainDataset",
    VAL_DATASET = "ValDataset",
    TEST_DATASET = "TestDataset",
    PREPROCESSED_DATASET = "PreprocessedDataset"
}
export interface PluginSettings {
    [key: string]: any;
    variableName?: string;
    labelName?: string;
}
export interface NodeRegistry {
    getManifest(pluginId: string): NodeManifest | undefined;
    getNode(nodeId: string): NodeInstance | undefined;
}
//# sourceMappingURL=v2-alpha-types.d.ts.map