export interface RosterRoute { readonly harness: 'grok' | 'claude' | 'codex' | 'pi'; readonly model: string; readonly vendor: string; readonly roles: readonly string[]; readonly permissions: readonly ('read-only' | 'edit')[]; readonly status: 'admitted' | 'retired'; } export interface RosterPolicy { readonly routes: Readonly>; readonly lineup: Readonly>; readonly required_critics: Readonly>; readonly model_origins: Readonly>; } export interface PolicyIdentity { readonly commit: string; readonly blob: string; readonly sha256: string } export interface LoadedPolicy { readonly identity: PolicyIdentity; readonly policy: RosterPolicy } export function refuseRetiredRosterFile(root: string): void; export function loadTrustedRosterPolicy(): LoadedPolicy; export function resolveBoundPolicy(identity: PolicyIdentity): LoadedPolicy; export function canonicalVendor(value: string): string; export function assembleRosterPolicy(models: readonly Record[], roles: readonly Record[]): RosterPolicy; export function validateRosterDocument( policy: RosterPolicy, readBlob: (source: string) => string | Uint8Array | null | undefined, ): RosterPolicy;