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>; } export interface BlockStudioCertificationChecklist { metadata: boolean; validation: boolean; run: boolean; tests: boolean; chart: boolean; lineage: boolean; aiReviewed: boolean; blockers: string[]; checkedAt?: string; } export interface DqlGenerationEvidence { kind: 'dql_block' | 'dql_term' | 'business_view' | 'domain' | 'semantic_metric' | 'semantic_model' | 'dbt_model' | 'warehouse_table' | 'datalex_contract' | 'datalex_entity' | 'datalex_domain' | 'datalex_term' | 'metadata' | 'lineage'; name: string; description?: string; objectKey?: string; source?: string; reason?: string; confidence?: number; } export interface BlockDraftSaveState { status: 'pending' | 'saved' | 'error' | 'skipped'; path?: string; savedAt?: string; error?: string; reason?: string; } export type DqlParameterPolicyKind = 'dynamic' | 'static' | 'business' | 'derived' | 'optional' | 'ambiguous_review_required'; export type DqlParameterValue = string | number | boolean | Array; export interface DqlParameterDecision { name: string; policy: DqlParameterPolicyKind; value: DqlParameterValue; valueType: 'string' | 'number' | 'boolean' | 'date' | 'year' | 'set'; sourceExpression: string; reason: string; confidence: number; } export interface BlockFilterBinding { filter: string; binding: string; } export type BlockSimilarityMatchKind = 'exact_sql_match' | 'parameterized_duplicate' | 'business_duplicate' | 'near_variant' | 'source_variant' | 'new_logic'; export type DqlCandidateRecommendedAction = 'reuse_existing' | 'extend_existing' | 'create_replacement' | 'create_new' | 'review_required'; export interface BlockSimilarityMatch { kind: BlockSimilarityMatchKind; objectKey?: string; name: string; status?: string; source?: string; score: number; reason: string; recommendedAction: DqlCandidateRecommendedAction; } export interface BlockStudioImportCandidate { id: string; sourceKind: BlockStudioImportSourceKind; sourcePath: string; name: string; domain: string; description: string; owner: string; tags: string[]; terms?: string[]; pattern?: string; grain?: string; entities?: string[]; outputs?: string[]; dimensions?: string[]; allowedFilters?: string[]; parameterPolicy?: Array<{ name: string; policy: string; }>; filterBindings?: BlockFilterBinding[]; sourceSystems?: string[]; replacementFor?: string[]; reviewCadence?: string; parameterDecisions?: DqlParameterDecision[]; similarityMatches?: BlockSimilarityMatch[]; recommendedAction?: DqlCandidateRecommendedAction; 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; generationMode?: 'ai' | 'deterministic'; generationProvider?: string; llmContext?: string; evidence?: DqlGenerationEvidence[]; draftSave?: BlockDraftSaveState; analysisStatus?: 'queued' | 'retrieving' | 'reviewing' | 'previewing' | 'ready' | 'needs_attention'; } export type DqlGenerationCandidate = BlockStudioImportCandidate & { generationMode: 'ai' | 'deterministic'; generationProvider: string; llmContext: string; evidence: DqlGenerationEvidence[]; draftSave: BlockDraftSaveState; }; 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 DqlGenerationSession extends Omit { mode: 'ai-import'; persistence?: 'session-only' | 'draft-files'; generation: { provider: string; aiEnabled: boolean; contextObjectCount: number; createdDrafts: number; warnings: string[]; }; candidates: DqlGenerationCandidate[]; } 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>): BlockStudioImportCandidate; export declare function candidateToDqlSource(candidate: Pick): string; export interface DqlSqlParameterizationResult { sql: string; parameterDecisions: DqlParameterDecision[]; parameterPolicy: Array<{ name: string; policy: string; }>; filterBindings: BlockFilterBinding[]; allowedFilters: string[]; warnings: string[]; } export declare function parameterizeSqlForDqlImport(sql: string): DqlSqlParameterizationResult; //# sourceMappingURL=block-studio-import.d.ts.map