import { type CanonicalLocusEnvelope, type CanonicalReference } from '@agenticprimitives/content-primitives'; import { type BibleBook } from './canon.js'; export { BOOKS, lookupBook, type BibleBook } from './canon.js'; /** Content type for a single verse (carried in a descriptor's `contentType`). */ export declare const SCRIPTURE_VERSE_CONTENT_TYPE = "scripture.verse"; /** The vertical domain tag in the envelope. */ export declare const CONTENT_DOMAIN = "scripture"; /** * The versioned locus profile — the governance seam (spec 266 §2.1). Bundles the * canon + versification model. Changing it is a deliberate new namespace (a * different canonicalId), never an accidental break. */ export declare const SCRIPTURE_LOCUS_PROFILE_V1 = "ap.scripture.locus.v1"; /** The verse-NUMBERING model id (not a translation). */ export declare const VERSIFICATION_V1 = "kjv-v1"; /** The canon model id. */ export declare const CANON_V1 = "bible.protestant-66"; /** Structured, controlled-token canonical locus for a verse (profile v1). */ export interface ScriptureCanonicalLocusV1 { kind: 'scripture.locus'; /** Controlled work token, e.g. 'bible.book.john' (NOT a display label). */ work: string; canon: string; versification: string; locusType: 'verse'; chapter: number; verse: number; } /** Structured scripture selector carried in a descriptor's `selector` field. */ export interface ScriptureSelector { kind: 'scripture'; /** OSIS book code, e.g. 'John' — display/selector metadata, not identity. */ book: string; chapter: number; verse: number; versification: string; canon: string; } export declare class InvalidScriptureReferenceError extends Error { constructor(message: string); } /** * Build the controlled-token canonical locus for a verse. SCHEMA-VALIDATES: * chapter/verse must be small positive integers, book must be in canon. All * fields are controlled tokens — no user strings enter the hashed object. */ export declare function scriptureCanonicalLocus(book: BibleBook, chapter: number, verse: number): ScriptureCanonicalLocusV1; /** Wrap a canonical locus in the hashed envelope (domain + profile committed). */ export declare function scriptureEnvelope(locus: ScriptureCanonicalLocusV1): CanonicalLocusEnvelope; export declare function scriptureSelector(book: BibleBook, chapter: number, verse: number): ScriptureSelector; export interface ParsedScriptureReference { book: BibleBook; chapter: number; verse: number; selector: ScriptureSelector; locus: ScriptureCanonicalLocusV1; reference: CanonicalReference; } /** * Parse a scripture alias into its canonical locus. Accepts the canonical alias * `scripture:john.3.16` and tolerant human forms (`John 3:16`, `Jn 3.16`, * OSIS `John.3.16`, USFM `JHN 3:16`). All normalize to the SAME canonical locus * → SAME id. Translation/edition prefixes are NOT accepted (they are descriptor * metadata, not part of the public name — spec 267 §2): an unknown leading token * fails book lookup. */ export declare function parseScriptureAlias(alias: string): ParsedScriptureReference; /** The canonical display reference, e.g. 'John 3:16'. */ export declare function displayReference(book: BibleBook, chapter: number, verse: number): string; //# sourceMappingURL=index.d.ts.map