import type { ImportableSchemaBase, CollectionSchemaBase, SchemaBase } from './dsl.js'; import { DtoField } from './dto.js'; import type { DtoMessage, DtoArrayField, DtoObjectField } from './dto.js'; import type { ComponentSchema } from './component.js'; import type { PageActionSchema } from './page-action.js'; export type { RouteDataSchema } from './route.js'; export { defineRouteData } from './route.js'; /** Page lifecycle events that trigger data loading. */ export interface EventSchema extends SchemaBase { type: 'onLoad' | 'onShow' | 'onHide' | 'onPullDownRefresh' | 'onReachBottom'; /** Page actions that fire when this event occurs. */ actions?: PageActionSchema[]; } export declare const events: { onLoad(actions?: PageActionSchema[], description?: string): EventSchema; onShow(actions?: PageActionSchema[], description?: string): EventSchema; onHide(actions?: PageActionSchema[], description?: string): EventSchema; onPullDownRefresh(actions?: PageActionSchema[], description?: string): EventSchema; onReachBottom(actions?: PageActionSchema[], description?: string): EventSchema; }; /** Page data: a named collection of fields that defines the page's data shape. */ export interface PageDataSchema extends CollectionSchemaBase { type: 'pageData'; fields: Record; } export declare function definePageData(fields: PageDataSchema['fields']): PageDataSchema; /** Page skeleton definition. */ export interface PageDef extends ImportableSchemaBase { data: PageDataSchema; /** Lifecycle events that trigger data loading. */ events: EventSchema[]; /** Page actions (provider calls, navigation, etc.). */ actions: PageActionSchema[]; /** UI component declarations that make up the page skeleton. */ components: ComponentSchema[]; /** Whether the driver should generate page-level loading / error / empty state wrappers. */ handleStates?: boolean; } /** Define a page skeleton. */ export declare function definePageDef(name: string, schema: Omit): PageDef;