import type { CLIFlags } from '../args.js'; export type MigrationSource = 'looker' | 'tableau' | 'dbt' | 'metabase' | 'raw-sql'; export interface MigrationResult { source: MigrationSource; blocksGenerated: number; metricsGenerated: number; dimensionsGenerated: number; needsReview: number; } export declare function runMigrate(file: string, flags: CLIFlags): Promise; type ModelingMigrationIssueCode = 'DBT_MANIFEST_MISSING' | 'INVALID_SOURCE' | 'DOMAIN_UNRESOLVED' | 'TARGET_COLLISION' | 'IDENTITY_COLLISION' | 'AMBIGUOUS_DBT_BINDING'; export interface ModelingMigrationIssue { code: ModelingMigrationIssueCode; path: string; detail: string; candidates?: string[]; } export interface ModelingMigrationLoss { code: 'MISSING_DBT_BINDING' | 'YAML_COMMENTS' | 'UNKEYED_MODELING_OBJECT'; path: string; detail: string; } export interface ModelingMigrationReport { target: 'dbt-first'; mode: 'dry-run' | 'applied'; status: 'ready' | 'blocked' | 'noop' | 'applied'; fingerprint: string; configChanges: string[]; modelingConsolidations: Array<{ domain: string; sources: string[]; target: string; }>; productMoves: Array<{ kind: 'app' | 'notebook'; domain: string; source: string; target: string; }>; qualifiedIdentityRewrites: Array<{ domain: string; kind: string; localId: string; qualifiedId: string; }>; ambiguities: ModelingMigrationIssue[]; losses: ModelingMigrationLoss[]; written: string[]; removed: string[]; } interface ModelingFileOperation { kind: 'file'; target: string; content: string; } interface ModelingDirectoryOperation { kind: 'directory'; source: string; target: string; patches: Array<{ path: string; content: string; }>; } type ModelingWriteOperation = ModelingFileOperation | ModelingDirectoryOperation; export interface ModelingMigrationPlan { report: ModelingMigrationReport; writes: ModelingWriteOperation[]; deletes: string[]; } /** MIG-001/MIG-002: explicit, previewable adoption of the canonical dbt-first layout. */ export declare function runModelingMigration(flags: CLIFlags): Promise; /** Build a deterministic plan without writing. Exported for commit-scoped migration tests. */ export declare function planModelingMigration(projectRootInput: string): ModelingMigrationPlan; /** Apply only the exact reviewed fingerprint, with rollback across all source replacements. */ export declare function applyModelingMigration(projectRootInput: string, plan: ModelingMigrationPlan): { written: string[]; removed: string[]; }; export interface ParameterMigrationIssue { path: string; block?: string; kind: 'undeclared_placeholder' | 'policy_without_definition' | 'incompatible_default' | 'ambiguous_semantic_filter' | 'duplicate_parameterized_contract'; detail: string; } export interface ParameterMigrationReport { scanned: number; blocksWithParameters: number; issues: ParameterMigrationIssue[]; } /** * A read-only migration audit. Existing blocks keep their legacy execution * defaults; the report identifies only the contracts that need a human review * before AI may adapt their values. */ export declare function runParameterMigrateCheck(flags: CLIFlags): Promise; export declare function runLayoutMigrate(flags: CLIFlags): Promise; export declare function runFormatMigrate(root: string, flags: CLIFlags): Promise; export {}; //# sourceMappingURL=migrate.d.ts.map