import { type FlagClient, type FlagClientOptions } from "@indigoai-us/hq-flags-client"; /** Default-off rollout gate for the additional sync delete protections. */ export declare const MASS_DELETE_GUARDS_FLAG = "sync.delete-absolute-volume-and-release-root-guards"; export declare const MASS_DELETE_ABSOLUTE_CEILING = 100; export declare const MASS_DELETE_SAMPLE_CAP = 10; export type MassDeleteGuardReason = "absolute-volume" | "release-owned-root"; export interface MassDeleteGuardFlagInput { /** Company uid for company sync, or person uid for a personal-vault pass. */ contextUid: string; companySlug?: string; endpoint?: string; getToken?: () => string | Promise; } type FlagReader = Pick; type FlagReaderFactory = (options: FlagClientOptions) => FlagReader; /** Protected roots take precedence over the absolute-volume reason. */ export declare function massDeleteGuardReason(deleteKeys: readonly string[], allPlannedDeleteKeys?: readonly string[]): MassDeleteGuardReason | undefined; export declare function isMassDeleteGuardOverrideEnabled(policy?: "currency-gated" | "owned-only" | "all", env?: Readonly<{ HQ_SYNC_DELETE_BULK_OVERRIDE?: string; }>): boolean; /** Resolve only through hq-flags; every unavailable or unreadable case is off. */ export declare function resolveMassDeleteGuards(input: MassDeleteGuardFlagInput, dependencies?: { createClient?: FlagReaderFactory; env?: Readonly<{ HQ_FLAGS_API_URL?: string; }>; now?: () => number; warn?: (line: string) => void; }): Promise; export {}; //# sourceMappingURL=mass-delete-guards.d.ts.map