import { type ExposureScanResult } from "./scanner.js";
export interface SecurityTaskSuggestion {
    fingerprint: string;
    title: string;
    body: string;
    priority: "low" | "medium" | "high" | "critical";
    tags: string[];
    metadata: Record<string, unknown>;
}
export interface SecretPermissionFinding {
    path: string;
    mode: string;
    expected_max_mode: string;
    status: "unsafe" | "fixed";
    fingerprint: string;
}
export interface SecretPermissionAuditResult {
    schema: "open-secrets.permissions.v1";
    generated_at: string;
    roots: string[];
    fixed: boolean;
    summary: {
        checked: number;
        findings: number;
        fixed: number;
        truncated: boolean;
    };
    findings: SecretPermissionFinding[];
    task_suggestions: SecurityTaskSuggestion[];
}
export interface SecretPermissionAuditOptions {
    roots?: string[];
    maxFiles?: number;
    fixPermissions?: boolean;
}
export interface SecurityExposureSweepResult {
    schema: "open-secrets.exposure-sweep.v1";
    generated_at: string;
    mode: "workspace" | "history";
    roots: string[];
    summary: {
        roots: number;
        findings: number;
        errors: number;
        truncated: boolean;
    };
    scans: ExposureScanResult[];
    task_suggestions: SecurityTaskSuggestion[];
}
export interface SecurityExposureSweepOptions {
    roots?: string[];
    mode?: "workspace" | "history";
    limit?: number;
    maxFiles?: number;
    maxBytesScanned?: number;
    maxCommits?: number;
    timeoutMs?: number;
}
export interface SupplyChainFinding {
    path: string;
    line: number;
    signal: string;
    preview: string;
    fingerprint: string;
}
export interface SupplyChainWatchResult {
    schema: "open-secrets.supply-chain-watch.v1";
    generated_at: string;
    roots: string[];
    summary: {
        files_scanned: number;
        findings: number;
        truncated: boolean;
    };
    findings: SupplyChainFinding[];
    task_suggestions: SecurityTaskSuggestion[];
}
export interface SupplyChainWatchOptions {
    roots?: string[];
    maxFiles?: number;
    maxFindings?: number;
}
export declare function auditSecretFilePermissions(options?: SecretPermissionAuditOptions): SecretPermissionAuditResult;
export declare function runSecurityExposureSweep(options?: SecurityExposureSweepOptions): SecurityExposureSweepResult;
export declare function runSupplyChainWatch(options?: SupplyChainWatchOptions): SupplyChainWatchResult;
//# sourceMappingURL=security.d.ts.map