export type PerfettoSqlDocEntryType = 'table' | 'view' | 'function' | 'table_function' | 'macro';
export interface PerfettoSqlDocColumn {
    name: string;
    type?: string;
    description?: string;
    table?: string;
    column?: string;
}
export interface PerfettoSqlDocParam {
    name: string;
    type?: string;
    description?: string;
    table?: string;
    column?: string;
}
export interface PerfettoSqlSymbolLineage {
    usesModules?: string[];
    implicitUsesModules?: string[];
    intrinsicsOrExternal?: string[];
}
export interface PerfettoSqlDocEntry {
    id: string;
    name: string;
    type: PerfettoSqlDocEntryType;
    category: string;
    subcategory?: string;
    module: string;
    package: string;
    description: string;
    fullDescription?: string;
    visibility?: string;
    tags?: string[];
    include?: string;
    moduleIncludes?: string[];
    transitiveIncludes?: string[];
    dataCheckSql?: string;
    sourcePath?: string;
    columns?: PerfettoSqlDocColumn[];
    params?: PerfettoSqlDocParam[];
    returnType?: string;
    returnDescription?: string;
    lineage?: PerfettoSqlSymbolLineage;
}
export interface PerfettoSqlModuleDoc {
    package: string;
    module: string;
    moduleDoc?: string;
    tags?: string[];
    includes?: string[];
    transitiveIncludes?: string[];
    dataCheckSql?: string;
    sourcePath?: string;
    missingIncludes?: string[];
    errors?: string[];
    symbols: string[];
}
export interface PerfettoSqlDocsAsset {
    version: number;
    generatedAt?: string;
    generatedFrom?: string;
    sourceDocs?: string;
    pfsqlLineage?: {
        status: 'ok' | 'unavailable' | 'failed';
        binary?: string;
        error?: string;
    };
    stats?: {
        moduleCount: number;
        entryCount: number;
        byType: Record<string, number>;
    };
    modules: PerfettoSqlModuleDoc[];
    entries: PerfettoSqlDocEntry[];
    symbolToModule: Record<string, string>;
}
export interface PerfettoSqlDocSearchResult {
    entry: PerfettoSqlDocEntry;
    score: number;
    matchedFields: string[];
}
export declare function getPerfettoSqlDocsAssetPath(): string;
export declare function loadPerfettoSqlDocsAsset(): PerfettoSqlDocsAsset | null;
export declare function clearPerfettoSqlDocsCache(): void;
export declare function searchPerfettoSqlDocs(query: string, options?: {
    limit?: number;
    includePrivate?: boolean;
    type?: string;
    module?: string;
}): PerfettoSqlDocSearchResult[];
export declare function getPerfettoSqlModuleDoc(moduleName: string): PerfettoSqlModuleDoc | undefined;
export declare function listPerfettoSqlModuleDocs(namespace?: string): PerfettoSqlModuleDoc[];
export declare function getPerfettoSqlModuleClosure(moduleName: string): string[];
export declare function moduleCoveredByPerfettoSqlLineage(targetModule: string, declaredModule: string): boolean;
//# sourceMappingURL=perfettoSqlDocs.d.ts.map