/**
 * Code-generation manager functions — TypeScript ports of the Handlebars helpers:
 * importManager, constructorInjectorManager, returnTypeManager, indexesManager, variablesInjectorManager.
 */
import type { ConstructorInjectionStatement, ImportStatement, Property, ReturnTypeStatement, VariableInjectionStatement } from '../domain/model.js';
export interface ImportManagerOptions {
    commandType?: 'export' | 'import';
    imports: ImportStatement[];
    sortImportedClasses?: boolean;
    sortImports?: boolean;
}
/** Group imports by path, deduplicate items, sort, return formatted import/export string. */
export declare function importManager({ commandType, imports, sortImportedClasses, sortImports, }: ImportManagerOptions): string;
export interface ConstructorInjectorManagerOptions {
    injections: ConstructorInjectionStatement[];
    nTabulations?: number;
    sortInjections?: boolean;
}
/** Deduplicate by variableName, sort, return formatted constructor parameters string. */
export declare function constructorInjectorManager({ injections, nTabulations, sortInjections, }: ConstructorInjectorManagerOptions): string;
export interface ReturnTypeManagerOptions {
    nTabulations?: number;
    returnTypes: ReturnTypeStatement[];
    sortReturnTypes?: boolean;
}
/** Deduplicate, sort, return formatted type declarations string. */
export declare function returnTypeManager({ nTabulations, returnTypes, sortReturnTypes, }: ReturnTypeManagerOptions): string;
export interface IndexesManagerOptions {
    indexProperties: Property[];
    isI18n?: boolean;
}
/** Generate Sequelize index definitions from Property[]. */
export declare function indexesManager({ indexProperties, isI18n, }: IndexesManagerOptions): string;
export interface VariablesInjectorManagerOptions {
    injections: VariableInjectionStatement[];
    nTabulations?: number;
    sortInjections?: boolean;
}
/** Generate Angular `inject()` calls for dependency injection. */
export declare function variablesInjectorManager({ injections, nTabulations, sortInjections, }: VariablesInjectorManagerOptions): string;
