import { IModelType, IModelTypeComposite, IStatusMessage, IPropertyStatusMessage, Predicate, Primitive } from "./model.api"; import { IModelView, IModelViewField, IModelViewPage, ValidationScope } from "./model.view.api"; import { ClientProps } from "./model.base"; export declare class ModelViewField implements IModelViewField { constructor(key: string, type: IModelType); get keypath(): string[]; get key(): string; get pointer(): string; get type(): IModelType; validate(val: any): IPropertyStatusMessage[]; private _keyString; private _keyPath; private _type; } export declare class ModelViewPage extends ClientProps implements IModelViewPage { constructor(alias: string, index: number, pageType: IModelTypeComposite, pages?: IModelViewPage[], props?: any); get alias(): string; get index(): number; get type(): IModelTypeComposite | IModelType; get fields(): string[]; get pages(): IModelViewPage[]; get skipPredicate(): Predicate; flagExists(name: string): boolean; flagNames(): string[]; flagIsTrue(name: string, obj: any): boolean; private _alias; private _index; private _type; private _pages; private _flags; private _flagNames; private _skipPredicate; } export declare class ModelViewMeta { constructor(type: IModelTypeComposite); getPages(): ModelViewPage[]; getModelType(): IModelTypeComposite; getFields(): IModelViewField[]; getField(keyPath: string | string[]): IModelViewField; _updatedModel(model: any, keyPath: string[], newValue: Primitive | any[]): any; _updatedModelWithType(model: any, keyPath: string[], newValue: Primitive | any[], type: IModelType): any; private _modelType; private _fields; private _pages; } /** * Provides an immutable facade for a model, adding IModelType * based validation and support for copy-on-write mutation. * */ export declare class ModelView implements IModelView { constructor(modelTypeOrSelf: IModelTypeComposite | ModelView, modelData?: any, initialPage?: number); getModelType(): IModelType; getField(keyPath: string | string[]): IModelViewField; getFields(): IModelViewField[]; getModel(): T; withValidationMessages(messages: IPropertyStatusMessage[]): ModelView; withStatusMessages(messages: IStatusMessage[]): ModelView; withClearedVisitedFlags(): IModelView; withAddedVisitedFlags(fields: string[]): IModelView; validationScope(): ValidationScope; validateDefault(): Promise>; validateVisited(): Promise>; validatePage(): Promise>; validateFull(): Promise>; private _validateSlice; withFieldEditableFlag(keypath: string | string[], flag: boolean): ModelView; withFieldEditableFlags(flags: { [keypath: string]: boolean; }): ModelView; isFieldEditable(keypath: string | string[]): boolean; withChangedField(keyPath: string | string[], newValue: Primitive | any[]): IModelView; withClearedField(keyPath: string | string[]): IModelView; withAddedData(obj: any): IModelView; getFieldValue(keyPath: string | string[]): any; getPossibleFieldValues(keyPath: string | string[]): any[]; getFieldType(keyPath: string | string[]): IModelType; getFieldContainerType(keyPath: string | string[]): IModelTypeComposite; getFieldMessages(keyPath: string | string[]): IPropertyStatusMessage[]; getValidationMessages(): IPropertyStatusMessage[]; isFieldValid(keyPath: string | string[]): boolean; withFocusedPage(page: string | number | IModelViewPage | undefined | null): IModelView; withAllPages(): IModelView; getFocusedPage(): IModelViewPage; getFocusedPageNo(): number; getFocusedPageUnskippedPageNo(): number; _isPage(page: IModelViewPage): boolean; getPages(): IModelViewPage[]; getUnskippedPages(): IModelViewPage[]; getAllPages(): IModelViewPage[]; getPage(aliasOrIndex?: string | number): IModelViewPage; getPageIndex(alias: string): number; getPageByUnskippedPageNo(no: number): IModelViewPage; _getNextUnskippedPage(step: number): [IModelViewPage, number]; getNextUnskippedPage(step: 1 | -1): IModelViewPage; getPageMessages(aliasOrIndex?: string | number): IStatusMessage[]; isPageValid(aliasOrIndex?: string | number): boolean; areVisitedPagesValid(): boolean; arePagesUpToCurrentValid(): boolean; isPageFlagTrue(name: string): boolean; isVisitedValid(): boolean; isValid(): boolean; areFieldsValid(fields: string[]): boolean; isFieldVisited(field: string | string[]): boolean; isPageVisited(aliasOrIndex: string | number): boolean; hasStatusError(): boolean; getStatusMessages(): IStatusMessage[]; get currentPageAlias(): string; get currentPageIndex(): number; get currentPageNo(): number; get totalPageCount(): number; _countSkippedPages(upto: number, pages: IModelViewPage[]): number; _countUnskippedPages(upto: number, pages: IModelViewPage[]): number; get currentUnskippedPageNo(): number; get totalUnskippedPageCount(): number; isFinished(): boolean; changePage(step: number): IModelView; gotoPage(indexOrAlias: number | string, validationScope?: ValidationScope): IModelView; shouldSkip(page: IModelViewPage): boolean; private _visitedPageFields; private _viewMeta; private _inputModel; private _model; private _visitedFields; private _readonlyFields; private _currentPage; private _focusedPage; private _focusedSubPages; private _validationScope; private _validations; private _statusMessages; private _messages; private _messagesByField; }