/** * Whether the text is a plain ASCII integer. * * Python's `int()` also accepts unicode digits and TS `parseInt` accepts a * digit-prefixed tail, so this is the one spelling both languages can agree * on for numeric path segments. */ export declare function asciiDigits(text: string): boolean; /** * Whether the text is shaped like a YYYY-MM-DD date. * * Shape only, not a calendar check: the dated-message backends mint their * date directories from real timestamps, so a shaped-but-absent date * resolves through the listing like any other name. A backend that must * refuse impossible dates (gcal, whose day dirs exist by construction) * validates with its own calendar-aware check instead. */ export declare function isoDateShaped(text: string): boolean; /** * How one dynamic path segment encodes its value. * * `suffix` is the extension the segment carries ('.json'); empty for bare * names. `validate` is an extra shape check on the decoded payload; a * failing payload means the segment does not match the scope at all. */ export declare class Codec { readonly suffix: string; readonly validate: ((text: string) => boolean) | null; constructor(init?: { suffix?: string; validate?: (text: string) => boolean; }); /** Decode a path segment, null when it does not fit. */ decode(text: string): string | null; /** Render a value back into a path segment. */ encode(value: string): string; } export declare const RAW: Codec; export declare const JSON_NAME: Codec; export declare const JSONL_NAME: Codec; export declare const INT_JSON: Codec; export declare const DATE: Codec; //# sourceMappingURL=codec.d.ts.map