/** * Portable relational identifier rules shared by typegen and every server * runtime. PostgreSQL truncates identifiers after 63 UTF-8 bytes, while the * relational Syncular projection reserves its own table/column namespace. * * Keeping this validation in core prevents a generated schema from passing * typegen and then failing later when a server or testkit compiles it. */ export declare const PORTABLE_RELATIONAL_IDENTIFIER_MAX_BYTES = 63; export type PortableRelationalIdentifierFailure = 'empty' | 'reserved-prefix' | 'too-long'; export declare class PortableRelationalIdentifierError extends Error { readonly kind: string; readonly identifier: string; readonly failure: PortableRelationalIdentifierFailure; readonly byteLength: number; readonly code = "schema.invalid_identifier"; constructor(kind: string, identifier: string, failure: PortableRelationalIdentifierFailure, byteLength: number); } /** Validate one identifier against the strictest supported relational host. */ export declare function validatePortableRelationalIdentifier(kind: string, identifier: string): void;