import { AladoServerError } from './alado-server-error'; export type PropertyDefinitionSchema = { type?: string; format?: string; default?: any; $ref?: string; nullable?: boolean; readOnly?: boolean; writeOnly?: boolean; deprecated?: boolean; enum?: any[]; oneOf?: Array; anyOf?: Array; allOf?: Array; not?: Array; properties?: Record; additionalProperties?: PropertyDefinitionSchema; minProperties?: number; maxProperties?: number; minimum?: number; maximum?: number; exclusiveMinimum?: number; exclusiveMaximum?: number; multipleOf?: number; minLength?: number; maxLength?: number; pattern?: string; items?: PropertyDefinitionSchema; minItems?: number; maxItems?: number; uniqueItems?: boolean; }; export type PropertyDocumentation = { schema: PropertyDefinitionSchema; description?: string; example?: any; }; export type PropertyValidation = { required?: boolean; handler: (value: any) => boolean | Promise; error: AladoServerError; }; export type PropertyDefinition = { isJSON?: boolean; validation: PropertyValidation; openApiDoc?: PropertyDocumentation; transform?: (value: any) => any | Promise; }; export type FilePropertyDefinition = { mimetypes: string[]; maxSize: number; required: boolean; mimetypeError: AladoServerError; maxSizeError: AladoServerError; requiredError: AladoServerError; };