import type { AccessControl, ExternalCalls, StateVars } from '../types/index.js';
import type { PatternResult } from './pattern-detection.js';
import type { ConstraintResult } from './constraint-extraction.js';
export interface EntryPoint {
    contract: string;
    function: string;
    visibility: string;
    state_mutability: string;
    modifiers: string[];
    mutates: string[];
    patterns: string[];
    file: string;
    line: number;
}
export interface TokenInteraction {
    contract: string;
    function: string;
    target: string;
    direction: 'in' | 'out' | 'both';
    mechanism: string;
    file: string;
}
export interface ExternalDependency {
    target: string;
    type: string;
    trust: string;
    called_by: string[];
}
export interface AttackSurfaceResult {
    entry_points: {
        permissionless: EntryPoint[];
        role_gated: EntryPoint[];
        owner_only: EntryPoint[];
    };
    token_interactions: TokenInteraction[];
    external_dependencies: ExternalDependency[];
    risk_signals: string[];
    summary: {
        total_entry_points: number;
        permissionless_count: number;
        role_gated_count: number;
        owner_only_count: number;
        external_dependency_count: number;
        risk_signal_count: number;
    };
}
/**
 * Build an attack surface summary by cross-referencing existing analysis outputs.
 */
export declare function buildAttackSurface(access: AccessControl | null, calls: ExternalCalls | null, stateVars: StateVars | null, patterns: PatternResult | null, constraints: ConstraintResult | null): AttackSurfaceResult;
//# sourceMappingURL=attack-surface.d.ts.map