export type BlockStudioImportSourceKind = 'raw-sql-file' | 'raw-sql-folder' | 'tableau-workbook' | 'powerbi-project';
export type BlockStudioImportReviewStatus = 'draft' | 'review' | 'saved' | 'rejected';
export type BlockStudioImportInputMode = 'path' | 'paste' | 'upload';
export type BlockStudioImportSplitStrategy = 'semicolon-go' | 'metadata-comment' | 'manual';
export interface BlockStudioImportSource {
    path: string;
    content: string;
}
export interface BlockStudioImportLineage {
    sourceTables: string[];
    parameters: string[];
    warnings: string[];
    statementIndex: number;
    totalStatements: number;
}
export interface BlockStudioAiAssistance {
    action: string;
    summary: string;
    createdAt: string;
    status: 'suggested' | 'accepted' | 'rejected';
    provider?: string;
    patch?: Partial<Pick<BlockStudioImportCandidate, 'name' | 'domain' | 'description' | 'owner' | 'tags' | 'sql' | 'dqlSource'>>;
}
export interface BlockStudioCertificationChecklist {
    metadata: boolean;
    validation: boolean;
    run: boolean;
    tests: boolean;
    chart: boolean;
    lineage: boolean;
    aiReviewed: boolean;
    blockers: string[];
    checkedAt?: string;
}
export interface BlockStudioImportCandidate {
    id: string;
    sourceKind: BlockStudioImportSourceKind;
    sourcePath: string;
    name: string;
    domain: string;
    description: string;
    owner: string;
    tags: string[];
    sql: string;
    dqlSource: string;
    validation: unknown | null;
    preview: unknown | null;
    lineage: BlockStudioImportLineage;
    confidence: number;
    splitStrategy: BlockStudioImportSplitStrategy;
    warnings: string[];
    conversionNotes: string[];
    aiAssistance: BlockStudioAiAssistance[];
    certificationChecklist?: BlockStudioCertificationChecklist;
    reviewStatus: BlockStudioImportReviewStatus;
    savedPath?: string;
}
export interface BlockStudioImportManifest {
    id: string;
    sourceKind: BlockStudioImportSourceKind;
    inputPath: string;
    createdAt: string;
    updatedAt: string;
    inputMode: BlockStudioImportInputMode;
    sourceFiles: string[];
    defaults: {
        domain: string;
        owner: string;
        tags: string[];
    };
    candidateIds: string[];
}
export interface BlockStudioImportSession extends BlockStudioImportManifest {
    candidates: BlockStudioImportCandidate[];
}
export interface BlockStudioImportSessionSummary {
    id: string;
    sourceKind: BlockStudioImportSourceKind;
    inputMode: BlockStudioImportInputMode;
    inputPath: string;
    sourceFiles: string[];
    createdAt: string;
    updatedAt: string;
    defaults: BlockStudioImportManifest['defaults'];
    candidateCount: number;
    savedCount: number;
    rejectedCount: number;
    warningCount: number;
}
export interface CreateBlockStudioImportOptions {
    sourceKind?: BlockStudioImportSourceKind | 'raw-sql';
    inputPath?: string;
    inputMode?: BlockStudioImportInputMode;
    sources?: BlockStudioImportSource[];
    domain?: string;
    owner?: string;
    tags?: string[];
}
export declare function createBlockStudioImportSession(projectRoot: string, options: CreateBlockStudioImportOptions): BlockStudioImportSession;
export declare function loadBlockStudioImportSession(projectRoot: string, importId: string): BlockStudioImportSession;
export declare function listBlockStudioImportSessions(projectRoot: string): BlockStudioImportSessionSummary[];
export declare function deleteBlockStudioImportSession(projectRoot: string, importId: string): void;
export declare function clearBlockStudioImportSessions(projectRoot: string): number;
export declare function writeBlockStudioImportSession(projectRoot: string, session: BlockStudioImportSession): void;
export declare function writeBlockStudioImportCandidate(projectRoot: string, importId: string, candidate: BlockStudioImportCandidate): void;
export declare function readBlockStudioImportCandidate(projectRoot: string, importId: string, candidateId: string): BlockStudioImportCandidate;
export declare function updateBlockStudioImportCandidate(projectRoot: string, importId: string, candidateId: string, patch: Partial<Pick<BlockStudioImportCandidate, 'name' | 'domain' | 'description' | 'owner' | 'tags' | 'sql' | 'reviewStatus'>>): BlockStudioImportCandidate;
export declare function candidateToDqlSource(candidate: Pick<BlockStudioImportCandidate, 'name' | 'domain' | 'description' | 'owner' | 'tags' | 'sql'>): string;
//# sourceMappingURL=block-studio-import.d.ts.map