/**
 * Flow Weaver Template Registry
 * Central registry for workflow and node templates
 */
/**
 * Configuration field types
 */
export type ConfigFieldType = 'select' | 'string' | 'boolean' | 'number';
/**
 * A configuration field definition
 */
export interface ConfigField {
    type: ConfigFieldType;
    label: string;
    description?: string;
    default?: unknown;
    options?: Array<{
        value: string;
        label: string;
    }>;
    placeholder?: string;
    dependsOn?: {
        field: string;
        values: string[];
    };
}
/**
 * Configuration schema for a template
 */
export interface ConfigSchema {
    [fieldName: string]: ConfigField;
}
/**
 * Options for generating a workflow template
 */
export interface WorkflowTemplateOptions {
    /** Name for the workflow function */
    workflowName: string;
    /** Whether to generate an async workflow */
    async?: boolean;
    /** Configuration values for the template */
    config?: Record<string, unknown>;
}
/**
 * A workflow template definition
 */
export interface WorkflowTemplate {
    /** Unique template ID (used in CLI) */
    id: string;
    /** Display name */
    name: string;
    /** Brief description of the template */
    description: string;
    /** Category for grouping */
    category: 'data-processing' | 'automation' | 'ai' | 'integration' | 'utility';
    /** Configuration schema for the template */
    configSchema?: ConfigSchema;
    /** Generate the template code */
    generate: (options: WorkflowTemplateOptions) => string;
}
/**
 * A node type template definition
 */
export interface NodeTemplate {
    /** Unique template ID */
    id: string;
    /** Display name */
    name: string;
    /** Brief description */
    description: string;
    /** Category for grouping */
    category: 'ai' | 'validation' | 'data' | 'integration' | 'workflow';
    /** Configuration schema for the template (optional) */
    configSchema?: ConfigSchema;
    /** Generate the template code */
    generate: (name: string, config?: Record<string, unknown>) => string;
}
/**
 * All available workflow templates
 */
export declare const workflowTemplates: WorkflowTemplate[];
/**
 * All available node templates
 */
export declare const nodeTemplates: NodeTemplate[];
/**
 * Get a workflow template by ID.
 * Checks both core templates and any dynamically loaded pack templates.
 */
export declare function getWorkflowTemplate(id: string): WorkflowTemplate | undefined;
/**
 * Get a node template by ID
 */
export declare function getNodeTemplate(id: string): NodeTemplate | undefined;
/**
 * Get all workflow templates including pack-contributed ones.
 */
export declare function getAllWorkflowTemplates(): WorkflowTemplate[];
/**
 * Register workflow templates contributed by a built-in extension.
 * Unlike loadPackTemplates (which scans npm packages), this is for
 * in-tree extensions that register at bootstrap time.
 */
export declare function registerWorkflowTemplates(templates: WorkflowTemplate[]): void;
/**
 * Convert a string to camelCase
 */
export declare function toCamelCase(str: string): string;
/**
 * Convert a string to PascalCase (for labels)
 */
export declare function toPascalCase(str: string): string;
//# sourceMappingURL=index.d.ts.map