import type { DatabaseCategory } from '../common/tech-enums.js';
export type DBEngine = 'supabase' | 'firebase' | 'postgresql' | 'mysql' | 'mongodb' | 'sqlite';
export interface DBEngineRegistryEntry {
    displayName: string;
    category?: DatabaseCategory;
    detectionDeps: string[];
    detectionDepsPython?: string[];
    detectionDepsGo?: string[];
    detectionDepsRust?: string[];
    detectionDepsJava?: string[];
    prismaDeps?: string[];
    features: string[];
    securityRules: boolean;
    idType: string;
    timestampType?: string;
    jsonType?: string;
    autoIncrementSyntax?: string;
    schemaFormat?: string;
    docsUrl: string;
    collectionFormat?: string;
}
export interface DBEngineRegistry {
    engines: Record<string, DBEngineRegistryEntry>;
    sqlSyntax: {
        createTable: Record<string, string>;
        primaryKeyConstraint: Record<string, string>;
        autoTimestamps: Record<string, string>;
    };
}
export interface SQLSyntaxConfig {
    createTable: string;
    primaryKey: string;
    autoTimestamp: string;
    idType: string;
    jsonType: string;
    autoIncrement: string;
}
export interface DBEngineConfig {
    engine: DBEngine;
    detectedFrom: string;
    features: string[];
    securityRules: boolean;
}
export interface LintingRecommendationEntry {
    name: string;
    purpose: string;
    installCmd: string;
    docsUrl: string;
}
export interface LintingLanguageBlock {
    language: string;
    recommended: LintingRecommendationEntry[];
    transversal: LintingRecommendationEntry[];
}
export interface LinterInfo {
    name: string;
    language: string;
    configFile: string;
    rulesCount: number;
    isCustom: boolean;
    version: string | null;
}
export interface LinterConflict {
    linters: [string, string];
    conflictType: 'formatting-overlap' | 'rule-contradiction' | 'performance';
    description: string;
    resolution: string;
}
export interface LinterRecommendation {
    language: string;
    recommended: string[];
    transversal: string[];
    reasoning: string;
}
export interface ClaudeMdLintRule {
    ruleName: string;
    suggestAdding: boolean;
    reason: string;
}
//# sourceMappingURL=database.d.ts.map