import { z } from 'zod'; import type { OrgDef } from '../orgrt/types.js'; export declare const BlueprintSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; archetype: z.ZodOptional; skills: z.ZodDefault>; skill_pool: z.ZodDefault>; runtimeHints: z.ZodOptional>; }, z.core.$strict>>; recommendedPolicy: z.ZodOptional>; }, z.core.$strict>>; }, z.core.$strict>; export type Blueprint = z.infer; export interface ResolvedBlueprints { def: OrgDef; errors: string[]; notes: string[]; } /** The one value recorded for a blueprint that can't be read. Fixed, so the * hash doesn't depend on which check failed first (a cached snapshot can * report a changed package differently from a fresh one) or on local paths. */ export declare const BLUEPRINT_UNAVAILABLE = "unavailable: not active for org on this machine"; /** * #571: what the signed hash records for blueprint `name` — `sha256:` of * its `blueprint.json` bytes, or BLUEPRINT_UNAVAILABLE when no active `org` * blueprint of that name can be read. Start and reload resolve a blueprint * only while its bytes still have the digest that was verified. */ export declare function blueprintDigest(root: string, name: string): string; /** * Fills each blueprint role's unset `skills` / `skill_pool` from its active * `org` blueprint. Explicit role fields always win; blueprints never produce * `policy` or `tool_providers` — their hints only become `notes`. Returns the * input object itself when no role names a blueprint, and never writes the * Org JSON. Skill names are left to the existing `validateRoleSkills`. * * With `digests` (the ones the signature was verified with, keyed * `blueprint:`), a blueprint is used only if the bytes read now have * that digest (#571), so what the operator signed is what the roles get. */ export declare function resolveOrgDefBlueprints(def: OrgDef, root: string, digests?: Record): ResolvedBlueprints; //# sourceMappingURL=blueprints.d.ts.map