import Joi from 'joi'; export interface IMigrationHooks { should_migrate?: string[]; should_create_issue?: string[]; post_checkout?: string[]; apply?: string[]; pr_message?: string[]; [name: string]: string[] | undefined; } export interface IMigrationIssues { title?: string | number; description?: string; labels?: string[]; state?: 'open' | 'closed'; state_reason?: 'completed' | 'not_planned' | 'reopened' | null; } export type MigrationPhase = [keyof IMigrationHooks]; export interface IMigrationSpec { id: string; title: string; adapter: { type: string; [key: string]: any; }; hooks: IMigrationHooks; issues?: IMigrationIssues; } export declare function loadSpec(directory: string): IMigrationSpec; export declare function normalizeSpec(originalSpec: any): IMigrationSpec; export declare function validateSpec(spec: any): Joi.ValidationResult;