import { AbstractDataType, AbstractDataTypeConstructor } from 'sequelize/types/lib/data-types'; import { RequestParam } from '../lib/route'; export interface ValueObjectDefault { __dto_name: string; properties: RequestParam; } export interface TypeIsObject { __name: string; toSwagger: () => { type?: string; enum?: string[]; example?: string; format?: string; }; toSequelize: () => AbstractDataType | AbstractDataTypeConstructor; fixValue?: (data: any) => unknown; } export declare type DataType = TypeIsObject | (() => TypeIsObject) | ((...options: unknown[]) => TypeIsObject) | ValueObjectDefault; export interface TypeIsDefine { type: DataType; comment?: string; defaultValue?: unknown; required?: boolean; } export declare const parseToSwagger: (v: RequestParam | undefined) => { [key: string]: unknown; } | undefined; export declare const TypeArray: (o: DataType) => (() => TypeIsObject); export declare const TypePaging: (o: DataType) => () => { __name: string; toSwagger: () => { type: string; properties: { page: { type: string; comment: string; }; page_size: { type: string; comment: string; }; max_page: { type: string; comment: string; }; has_prev: { type: string; comment: string; }; has_next: { type: string; comment: string; }; total_elements: { type: string; comment: string; }; items: { type: string; items: { type?: string | undefined; enum?: string[] | undefined; example?: string | undefined; format?: string | undefined; } | { $ref: string; }; }; }; }; }; export declare const TypeIs: { INT: (options?: { decimals?: number | undefined; precision?: number | undefined; scale?: number | undefined; } | undefined) => TypeIsObject; LONG: (options?: { decimals?: number | undefined; precision?: number | undefined; scale?: number | undefined; } | undefined) => TypeIsObject; FLOAT: (length?: number | undefined, decimals?: number | undefined) => TypeIsObject; DOUBLE: (length?: number | undefined, decimals?: number | undefined) => TypeIsObject; STRING: (length?: number | undefined, binary?: boolean | undefined) => TypeIsObject; TEXT: (length?: "tiny" | "medium" | "long" | undefined) => TypeIsObject; PASSWORD: () => TypeIsObject; ENUM: (...texts: string[]) => TypeIsObject; JSON: () => TypeIsObject; BASE64: (length?: "tiny" | "medium" | "long" | undefined) => TypeIsObject; BINARY: (length?: "tiny" | "medium" | "long" | undefined) => TypeIsObject; BOOLEAN: () => TypeIsObject; DATEONLY: () => TypeIsObject; DATETIME: () => TypeIsObject; };