import { ID, ISODate } from './base-data.type'; export interface FieldInterface { label: string; title: string; placeholder?: string; append?: string; prepend?: string; validateByType?: boolean; validationRules?: Rule[]; additionalValidationRules?: Rule[]; } export declare type FieldContainerInterface = { [key in keyof T]: FieldInterface; }; export interface FieldColumnInterface { cssClass?: string; cssId?: string; cssStyle?: string; fields: FieldContainerInterface[]; } export interface TabInterface { title: string; label: string; cssId?: string; cssClass?: string; columns: FieldColumnInterface[]; } declare type Rule = 'string' | 'boolean' | 'number' | 'integer' | 'required' | 'nullable' | 'name' | 'email' | 'domain' | 'url' | 'iso_date' | 'driving_licence' | 'id_card_number' | 'address_card_number' | 'phonenumber' | 'bankaccount' | 'taxnumber' | 'social_insurance_number' | 'not_zero' | 'lang' | 'register_number' | 'array' | 'not_empty' | 'empty' | 'person_taxnumber' | 'color_code' | 'iban_code' | 'swift_code'; export interface ValidationRuleInterface { [key: string]: Rule[]; } export interface BaseModelWithoutTypeDefinitionInterface { readonly api_endpoint: string; readonly use_localstorage: boolean; readonly model_name: string; id: ID; isValid: boolean; validationErrors: string[]; validationRules: ValidationRuleInterface; init(data?: any): any; prepareToSave(): any; validate(): void; getValidatedErrorFields(): string[]; setDate(date: Date, days: number): ISODate; getCurrentUserId(): ID; getCurrentISODate(): ISODate; toISODate(date: Date): ISODate; toISODatetime(date: Date): string; calculateDateWithoutWeekend(date: string, days: number, sequence: string): ISODate; getCurrentTime(): string; } export interface FieldsInterface { fields: FieldContainerInterface; } export interface BaseModelInterface extends BaseModelWithoutTypeDefinitionInterface { tabs?: TabInterface; fieldAsBoolean(field: string, defaultValue: boolean, data: unknown): void; fieldAsNumber(field: string, defaultValue: number, data: unknown): void; fieldAsString(field: string, defaultValue: string, data: unknown): void; initModelOrNull(fields: Partial, data: unknown): void; initAsBoolean(fields: Partial, data: unknown): void; initAsBooleanWithDefaults(fields: Array, data: unknown): void; initAsNumber(fields: Partial, data: unknown): void; initAsNumberWithDefaults(fields: Array, data: unknown): void; initAsString(fields: Partial, data: unknown): void; initAsStringWithDefaults(fields: Array, data: unknown): void; prepareFieldsToSaveAsBooelan(fields: Partial): Partial; prepareFieldsToSaveAsNumber(fields: Partial): Partial; prepareFieldsToSaveAsString(fields: Partial): Partial; } interface ModelWithId { } export declare class BaseModel implements BaseModelInterface { id: ID; api_endpoint: string; use_localstorage: boolean; model_name: string; isValid: boolean; validationErrors: string[]; validationRules: ValidationRuleInterface; fields: FieldContainerInterface; init(data?: any): any; prepareToSave(): any; validate(preparedData?: any): void; getValidatedErrorFields(): string[]; setDate(date: Date, days?: number): ISODate; /** * Return current date as ISODate */ getCurrentISODate(): ISODate; /** * Return a date as ISODate */ toISODate(date: Date): ISODate; /** * Return a datetime as YYYY-MM-DD hh:mm:ss format */ toISODatetime(date: Date): string; /** * Return a time as hh:mm:ss format * * @param date Date * @returns string */ toISOTime(date: Date): string; /** * Return current user's id as ID */ getCurrentUserId(): ID; /** * Return default deviza id as ID */ getDefaultDevizaId(): ID; /** * Calculate the date with days without weekends * * @param date start date * @param days number of days to add * @param sequence - asc / desc */ calculateDateWithoutWeekend(date: string, days: number, sequence: 'up' | 'down'): ISODate; prepareFieldsToSaveAsString(fields: Partial): Partial; prepareFieldsToSaveAsNumber(fields: Partial): Partial; prepareFieldsToSaveAsBooelan(fields: Partial): Partial; initModelOrNull(fields: Partial, data: unknown): void; initAsBoolean(fields: Partial, data: unknown): void; initAsBooleanWithDefaults(fields: Array, data: unknown): void; fieldAsBoolean(field: string, defaultValue: boolean, data: unknown): void; initAsString(fields: Partial, data: unknown): void; initAsStringWithDefaults(fields: Array, data: unknown): void; fieldAsString(field: string, defaultValue: string, data: unknown): void; initAsNumber(fields: Partial, data: unknown): void; initAsNumberWithDefaults(fields: Array, data: unknown): void; fieldAsNumber(field: string, defaultValue: number, data: unknown): void; getCurrentTime(): string; } export {}; //# sourceMappingURL=base-model.model.d.ts.map