import { type MigrationPlan, type ResolvedChxConfig, type SchemaDefinition } from '@chkit/core'; import type { ChxGetContextInput, ChxOnCheckContext, ChxOnCheckResult, ChxOnAfterApplyContext, ChxOnBeforeApplyContext, ChxOnBeforePluginCommandContext, ChxOnBeforePluginCommandResult, ChxOnCompleteContext, ChxOnConfigLoadedContext, ChxOnInitContext, ChxOnPlanCreatedContext, ChxOnSchemaLoadedContext, ChxPlugin, ChxPluginCommand, ChxPluginCommandContext, PluginContext } from '../plugins.js'; import type { TableScope } from './table-scope.js'; interface LoadedPlugin { options: Record; plugin: ChxPlugin; } export interface PluginRuntime { plugins: ReadonlyArray; getCommand(pluginName: string, commandName: string): { command: ChxPluginCommand; plugin: LoadedPlugin; } | null; resolveContext(input: Omit): Promise; disposeContext(ctx: PluginContext): Promise; runOnInit(context: Omit): Promise; runOnComplete(context: Omit & { exitCode?: number; }): Promise; runOnConfigLoaded(context: Omit & { tableScope?: TableScope; }): Promise; runOnSchemaLoaded(context: ChxOnSchemaLoadedContext): Promise; runOnPlanCreated(context: Omit & { tableScope?: TableScope; }, plan: MigrationPlan): Promise; runOnBeforeApply(context: ChxOnBeforeApplyContext): Promise; runOnAfterApply(context: ChxOnAfterApplyContext): Promise; runOnCheck(context: Omit & { tableScope?: TableScope; }): Promise; runOnCheckReport(results: ChxOnCheckResult[], print: (line: string) => void): Promise; runOnBeforePluginCommand(pluginName: string, commandName: string, context: Omit): Promise; runPluginCommand(pluginName: string, commandName: string, context: Omit & { tableScope?: TableScope; }): Promise; } export declare function loadPluginRuntime(input: { config: ResolvedChxConfig; configPath: string; cliVersion: string; internalPlugins?: ChxPlugin[]; }): Promise; export {}; //# sourceMappingURL=plugin-runtime.d.ts.map