import { DdlInterpreter } from './ddl-interpreter/ddl-interpreter';
import { ModelGenerator } from './model-generator/model-generator';
import { RepoGenerator } from './repo-generator/repo-generator';
import { ResolverGenerator } from './resolver-generator/resolver-generator';
import { TableDef } from './model';
import { MainGenerator } from './main-generator/main-generator';
import { SchemaGenerator } from './schema-generator/schema-generator';
import { HeuristicEngine } from './heuristics/heuristic-engine';
export interface ExecutorOptions {
    phases: ('ddl' | 'heuristics' | 'model' | 'repo' | 'resolver' | 'schema' | 'main')[];
    defPath: string;
    ddlOverridesPath?: string;
    heurPath?: string;
    heurSuffixes?: string;
    heurEnableAll?: boolean;
    ddlPath?: string;
    tsFolder?: string;
    tsPrefix?: string;
    gqlPrefix?: string;
    gqlFolder?: string;
    gqlNoRoot?: boolean;
    gqlNoMutations?: boolean;
    sqlFactory?: string;
    override?: boolean;
}
export declare class Executor {
    private ddlInterpreter;
    private heuristicEngine;
    private modelGenerator;
    private repoGenerator;
    private resolverGenerator;
    private schemaGenerator;
    private mainGenerator;
    constructor(ddlInterpreter: DdlInterpreter, heuristicEngine: HeuristicEngine, modelGenerator: ModelGenerator, repoGenerator: RepoGenerator, resolverGenerator: ResolverGenerator, schemaGenerator: SchemaGenerator, mainGenerator: MainGenerator);
    execute(options: ExecutorOptions): void;
    private assertOptions;
    private executeDdl;
    private executeHeuristics;
    static mergeTableDefs(sourceTableDefs: TableDef[], ...partialTableDefs: TableDef[][]): TableDef[];
}
