import type { ParsedContract } from '../parsers/solidity-parser.js';
import type { SlitherFunctionSummary } from '../parsers/slither.js';
import type { AccessFunction, Role } from '../types/index.js';
/**
 * Extract Tier 1 raw facts: functions with their visibility and modifiers.
 */
export declare function extractFunctionFacts(contracts: ParsedContract[], fileMap: Map<string, string>): AccessFunction[];
/**
 * Merge inherited functions from Slither function-summary into the function list.
 * Slither's function-summary includes ALL functions per contract (including inherited).
 * We deduplicate: overridden functions keep the child contract's version,
 * non-overridden inherited functions get tagged with inherited_from.
 */
export declare function mergeInheritedFunctions(functions: AccessFunction[], slitherSummary: SlitherFunctionSummary[], contracts: ParsedContract[], fileMap: Map<string, string>): AccessFunction[];
/**
 * Merge inherited functions by walking the inheritance chain from flattened source AST.
 * Fallback for when Slither is not available.
 */
export declare function mergeInheritedFromFlatten(functions: AccessFunction[], flatParsedContracts: ParsedContract[], targetContract: ParsedContract, filePath: string): AccessFunction[];
/**
 * Tier 2: Interpret roles from modifiers, inheritance, and heuristics.
 */
export declare function interpretRoles(functions: AccessFunction[], contracts: ParsedContract[], slitherSummary: SlitherFunctionSummary[] | null): Role[];
//# sourceMappingURL=access-control.d.ts.map