import { Options, PastoralistJSON, SecurityAlert, SecurityOverride, SecurityOverrideDetail, OverrideUpdate } from "../types";
import { SecurityChecker } from "../core/security";
import { createSpinner, logger as createLogger } from "../utils";
import type { CliGraph, SecurityConfig, SecurityPhaseDeps, SecurityPhaseResult, SecurityProviderOption } from "./types";
export declare const normalizeCacheTtl: (value: unknown) => number | undefined;
export declare const buildMergedOptions: (options: Options, rest: Omit<Options, "isTestingCLI" | "init">, securityConfig: Partial<SecurityConfig>, configProvider: SecurityProviderOption) => Options;
export declare const buildSecurityOverrideDetail: (override: SecurityOverride) => SecurityOverrideDetail;
export declare const determineSecurityScanPaths: (config: PastoralistJSON | undefined, mergedOptions: Options, log?: ReturnType<typeof createLogger>) => string[];
export declare const runSecurityCheck: (config: PastoralistJSON, mergedOptions: Options, isLogging: boolean, log: ReturnType<typeof createLogger>, deps?: {
    createSpinner: (text: string, out?: import("../dx").Output) => import("../dx").Spinner;
    SecurityChecker: typeof SecurityChecker;
    determineSecurityScanPaths: (config: PastoralistJSON | undefined, mergedOptions: Options, log?: ReturnType<typeof createLogger>) => string[];
    green: (text: string) => string;
    yellow: (text: string) => string;
}) => Promise<{
    spinner: import("../dx").Spinner;
    securityChecker: SecurityChecker;
    alerts: SecurityAlert[];
    securityOverrides: SecurityOverride[];
    updates: OverrideUpdate[];
    packagesScanned: number;
    skipped: boolean;
}>;
export declare const handleSecurityResults: (alerts: SecurityAlert[], securityOverrides: SecurityOverride[], securityChecker: SecurityChecker, spinner: ReturnType<typeof createSpinner>, mergedOptions: Options, updates?: OverrideUpdate[]) => Pick<Options, "securityOverrides" | "securityOverrideDetails">;
export declare const runSecurityPhase: (graph: CliGraph, config: PastoralistJSON, mergedOptions: Options, isJsonOutput: boolean, isLogging: boolean, log: ReturnType<typeof createLogger>, deps: SecurityPhaseDeps) => Promise<SecurityPhaseResult>;
export declare const formatUpdateReport: (updates: OverrideUpdate[]) => string;
