export declare const PAGE_SOURCE_MAIN_SUFFIX: ".page.json"; export declare const PAGE_SOURCE_SCHEMA_SUFFIX: ".page.schema.json"; export declare const PAGE_SCHEMA_EXTERNAL_PREFIX: "@external:"; export declare const DEPLOYABLE_FIELDS: readonly ["apiName", "name", "description", "type", "status", "objectName", "schema", "version", "icon", "route", "isActive", "isSystem"]; export type DeployableField = (typeof DEPLOYABLE_FIELDS)[number]; export declare const PAGE_TYPES: readonly ["record", "list", "app", "utility"]; export type PageType = (typeof PAGE_TYPES)[number]; export declare const PAGE_STATUSES: readonly ["draft", "published", "archived"]; export type PageStatus = (typeof PAGE_STATUSES)[number]; export declare const API_NAME_PATTERN: RegExp; export declare const API_NAME_MAX_LENGTH = 100; export interface CustomPageLike { apiName: string; name: string; description: string | null; type: PageType; status: PageStatus; objectName: string | null; schema: Record; version: number; icon: string | null; route: string | null; isActive: boolean; isSystem: boolean; } export interface PageSourceFileBundle { mainFileName: string; mainContent: string; schemaFileName: string; schemaContent: string; } export interface PageSourceFileParseError { path: string; reason: 'missing-field' | 'unknown-field' | 'apiname-mismatch' | 'invalid-enum' | 'invalid-json' | 'schema-missing'; detail: string; } export type PageSourceFileParseResult = { ok: true; partial: CustomPageLike; } | { ok: false; errors: PageSourceFileParseError[]; }; export declare function canonicalStringify(value: unknown, options?: { sortKeys: boolean; }): string; export declare function serializePageSourceFile(entity: CustomPageLike): PageSourceFileBundle; export interface ParsePageSourceFileInput { mainContent: string; schemaContent: string | null; sourcePath: string; } export declare function parsePageSourceFile(input: ParsePageSourceFileInput): PageSourceFileParseResult;