import type { Command } from 'commander'; import { z } from 'zod'; import { type ReadOnlyWhitelist } from './readonly-whitelist.js'; /** The hand-authored input, relative to the package root. */ export declare const READONLY_SURFACE_RELATIVE_PATH = "contracts/readonly-surface.json"; /** The schema version of the artifact this module emits. */ export declare const READONLY_WHITELIST_SCHEMA_VERSION = 1; declare const SurfaceEntrySchema: z.ZodObject<{ id: z.ZodString; commandPath: z.ZodArray; argv: z.ZodArray; params: z.ZodRecord; pattern: z.ZodOptional; values: z.ZodOptional>; min: z.ZodOptional; max: z.ZodOptional; default: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const ReadOnlySurfaceSchema: z.ZodObject<{ schemaVersion: z.ZodLiteral<1>; readOnlyDefinition: z.ZodString; note: z.ZodDefault>; tools: z.ZodArray; argv: z.ZodArray; params: z.ZodRecord; pattern: z.ZodOptional; values: z.ZodOptional>; min: z.ZodOptional; max: z.ZodOptional; default: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; }, z.core.$strip>>; }, z.core.$strip>; export type ReadOnlySurface = z.infer; export type ReadOnlySurfaceEntry = z.infer; /** Build the artifact object from a surface declaration and a live program. */ export declare function generateReadOnlyWhitelist(surface: ReadOnlySurface, program: Command): ReadOnlyWhitelist; /** Byte-stable serialization: two runs over the same input MUST match. */ export declare function serializeReadOnlyWhitelist(whitelist: ReadOnlyWhitelist): string; /** Read + validate the hand-authored surface declaration. */ export declare function loadReadOnlySurface(root?: string): ReadOnlySurface; /** Absolute path of the generated artifact. */ export declare function readonlyWhitelistPath(root?: string): string; export {};