import { DialogService } from "aurelia-dialog"; import { CommonDialogs } from "../dialog-service"; import { IFormSchema, IFormSchemaService } from "./form-schema-service"; import { IFormSchemaCrudService } from "./form-schema-crud-service"; import { NotificationService } from "../notification-service/notification-service"; import { ISortColumnService } from "../sort-column-service"; import { IFormSchemaRulesProvider } from "./form-schema-rules-provider"; import { IValidationService } from "../validation/validation-service"; import { IEventAggregator } from "../../interfaces/IEventAggregator"; import { ValidateResult } from "aurelia-validation"; import { I18N } from 'aurelia-i18n'; export declare class FormSchemaCollectionController implements IFormSchemaCollectionController { private commonDialogs; sortColumnService: ISortColumnService; private dialogService; private notificationService; formSchemaService: IFormSchemaService; formSchemaCrudService: IFormSchemaCrudService; private i18n; constructor(commonDialogs: CommonDialogs, sortColumnService: ISortColumnService, dialogService: DialogService, notificationService: NotificationService, formSchemaService: IFormSchemaService, formSchemaCrudService: IFormSchemaCrudService, i18n: I18N, webServiceName: string); validationService?: IValidationService; rulesGenerator?: IFormSchemaRulesProvider; instances: Array; formSchema: IFormSchema; showing: boolean; disableNew: boolean; disableDelete: boolean; showKeyColumn: boolean; private promiseToBeLoaded; private _makingLocalChanges; private _loaded; insertOnNew: boolean; makingLocalChanges: boolean; protected clearMakingLocalChanges(delay?: number): Promise; refreshDatumOnUpdate: boolean; private className; private key; load(andFetch?: boolean): Promise; private getInstances(); private getFormSchema(); preValidate(instance: any, propertyName: string, newValue: any, oldValue: any): void; private _preValidate(instance, propertyName, newValue, oldValue); validate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise; registerInstances(instances: Array): void; unRegisterInstances(instances: Array): void; revalidateAll(): Promise>; handleUpdate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise; executeUpdate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise; handleCreate(): Promise; handleNew(instance: any): Promise; handleDelete(instance: any): Promise; fetchInstance(instance: any): Promise; private recordIdentication(instance); } export interface IUpdateHandleParams { instance: any; propertyName?: string; newValue?: any; oldValue?: any; } export interface IFormSchemaCollectionController { instances: Array; formSchema: IFormSchema; validationService?: IValidationService; sortColumnService: ISortColumnService; formSchemaService: IFormSchemaService; formSchemaCrudService: IFormSchemaCrudService; rulesGenerator?: IFormSchemaRulesProvider; disableNew?: boolean; disableDelete?: boolean; showKeyColumn?: boolean; refreshDatumOnUpdate?: boolean; load(andFetch?: boolean): Promise; insertOnNew: boolean; makingLocalChanges: boolean; } export interface IFormSchemaCollectionInstanceApi extends IFormSchemaCollectionControllerEventAggregator { preValidate(instance: any, propertyName: string, newValue: any, oldValue: any): void; revalidateAll(): Promise>; validate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise; registerInstances(instances: Array): void; unRegisterInstances(instances: Array): void; handleDelete: (instance: any) => Promise; handleNew: (instance: any) => Promise; handleCreate: () => Promise; handleUpdate: (instance: any, propertyName: string, newValue: any, oldValue: any) => Promise; fetchInstance: (instance: any) => Promise; } export declare type IFormSchemaCollectionControllerEventAggregator = IFormSchemaCollectionController & IEventAggregator; export { ValidateResult } from "aurelia-validation";