/**
 * Init-time guardrails — prevent accidental full-workspace blob indexing.
 * @see docs/specs/git-backed-blob-tier-v0.md §3.2
 */
export declare const INIT_INDEX_MAX_FILES = 500;
export declare const INIT_INDEX_MAX_BYTES: number;
export type WorkspaceScanEstimate = {
    fileCount: number;
    totalBytes: number;
};
export declare function collectInitIgnorePatterns(rootPath: string): string[];
/** Cheap pre-init estimate (stat only — no hashing). */
export declare function estimateWorkspaceScan(rootPath: string): WorkspaceScanEstimate;
export declare function exceedsInitIndexThreshold(estimate: WorkspaceScanEstimate): boolean;
export declare function hasRepoMarker(rootPath: string): boolean;
/** Warn when init target looks like an umbrella folder (v0: warn only). */
export declare function getUmbrellaInitWarning(rootPath: string): string | undefined;
export type InitIndexGateInput = {
    rootPath: string;
    indexWorkspace: boolean;
    /** CLI passed --index-workspace explicitly. */
    explicitIndexWorkspace?: boolean;
    isInteractive?: boolean;
    confirmLargeIndex?: () => Promise<boolean>;
};
export type InitIndexGateResult = {
    ok: true;
    indexWorkspace: boolean;
    umbrellaWarning?: string;
} | {
    ok: false;
    reason: 'gate';
    message: string;
    estimate: WorkspaceScanEstimate;
};
/**
 * Apply init indexing policy: default off; block large implicit scans.
 */
export declare function applyInitIndexGate(input: InitIndexGateInput): Promise<InitIndexGateResult>;
export declare function formatBytes(bytes: number): string;
//# sourceMappingURL=init-storage-guard.d.ts.map