export type MetadataType = 'ApexClass' | 'ApexTrigger' | 'LightningComponentBundle' | 'CustomObject' | 'CustomField' | 'Flow' | 'PermissionSet' | 'CustomLabel';
export type MetadataEntry = {
    apiName: string;
    type: MetadataType;
    path: string;
    category?: string;
    dependencies: string[];
    dependents?: string[];
    lastModified?: string;
    hash?: string;
};
export type MetadataIndex = {
    version: string;
    generatedAt: string;
    generatedBy: string;
    mode: 'full' | 'git-diff' | 'hash-compare';
    sourceRoot: string;
    stats: {
        totalEntries: number;
        byType: Record<MetadataType, number>;
        totalDependencies: number;
        orphanEntries: number;
    };
    entries: MetadataEntry[];
    dependencyGraph: {
        edges: Array<{
            from: string;
            to: string;
            type: string;
        }>;
    };
};
export type MetadataParser = {
    type: MetadataType;
    glob: string;
    parse(filePath: string, content: string): MetadataEntry | MetadataEntry[] | null;
    extractDependencies(entry: MetadataEntry, content: string): string[];
};
export type IndexOptions = {
    sourceDir: string;
    mode: 'full' | 'git-diff' | 'hash-compare';
    include?: MetadataType[];
    exclude?: MetadataType[];
    format?: 'json' | 'md';
};
