interface CodeownersRule {
    pattern: string;
    owners: string[];
    regex: RegExp;
}
export declare function parseCodeowners(rootDir: string): {
    rules: CodeownersRule[];
    path: string;
} | null;
export declare function clearCodeownersCache(): void;
export declare function parseCodeownersContent(content: string): CodeownersRule[];
export declare function patternToRegex(pattern: string): RegExp;
export declare function matchOwners(filePath: string, rules: CodeownersRule[]): string[];
export declare function ownersForFiles(filePaths: string[], repoRoot: string): {
    owners: Map<string, string[]>;
    affectedOwners: string[];
    suggestedReviewers: string[];
};
interface OwnersDataOpts {
    owner?: string;
    file?: string;
    kind?: string;
    noTests?: boolean;
    boundary?: boolean;
}
interface OwnedSymbol {
    name: string;
    kind: string;
    file: string;
    line: number;
    owners: string[];
}
interface OwnerBoundary {
    from: OwnedSymbol;
    to: OwnedSymbol;
    edgeKind: string;
}
interface OwnersDataResult {
    codeownersFile: string | null;
    files: {
        file: string;
        owners: string[];
    }[];
    symbols: OwnedSymbol[];
    boundaries: OwnerBoundary[];
    summary: {
        totalFiles: number;
        ownedFiles: number;
        unownedFiles: number;
        coveragePercent: number;
        ownerCount: number;
        byOwner: {
            owner: string;
            fileCount: number;
        }[];
    };
}
export declare function ownersData(customDbPath?: string, opts?: OwnersDataOpts): OwnersDataResult;
export {};
//# sourceMappingURL=owners.d.ts.map