export type YamlType = number | string | boolean | YamlType[] | ({ [key: string]: YamlType; } | ExtraYamlStuff); export type YamlDict = { [key: string]: YamlType; }; export type ExtraYamlStuff = { [key: `x-${string}`]: YamlType; }; export type RefType = { $ref: string; } & ExtraYamlStuff; export type TypeDeclaration = oneOfType | RefType | allOfType | anyOfType | ExplicitTypeDeclaration; export type ExplicitTypeDeclaration = (StringType | ArrayType | ObjectType | BooleanType | NumberType | IntegerType) & ExtraYamlStuff; export type oneOfType = { oneOf: TypeDeclaration[]; } & ExtraYamlStuff; export type anyOfType = { anyOf: TypeDeclaration[]; } & ExtraYamlStuff; export type allOfType = { allOf: TypeDeclaration[]; } & ExtraYamlStuff; export type CommonKeys = { nullable: boolean; title: string; } & ExtraYamlStuff; export type MinMaxLength = { minLength: number; maxLength: number; }; type NumberRules = { exclusiveMinimum: boolean; exclusiveMaximum: boolean; maximum: number; minimum: number; multipleOf: number; default: number; }; export type StringType = { type: "string"; enum?: string | string[]; format?: "date" | "date-time" | "password" | "byte" | "binary" | string; pattern?: string; default?: string; } & Partial & Partial & YamlDict; type FileType = { type: "string"; format: "base64" | "binary"; } & Partial & YamlDict; export type BooleanType = { type: "boolean"; default?: boolean; } & Partial & YamlDict; export type IntegerType = { type: "integer"; format?: "int32" | "int64"; } & Partial & Partial & Partial & YamlDict; export type NumberType = { type: "number"; format?: "float" | "double"; } & Partial & Partial & Partial & YamlDict; export type ArrayType = { type: "array"; items?: TypeDeclaration; uniqueItems?: boolean; minItems?: number; maxItems?: number; default?: string | any[]; } & Partial & YamlDict; export type ObjectType = { type: "object"; properties?: { [key: string]: TypeDeclaration; }; required?: string[]; additionalProperties?: boolean | {}; minProperties?: number; maxProperties?: number; default?: { [key: string]: any; }; } & Partial & YamlDict; export declare function isPropertyDeclaration(entry: YamlType): ExplicitTypeDeclaration | undefined; export declare function isSimpleStringType(entry: YamlType): StringType | undefined; export declare function isPossibleFileType(entry: YamlType): FileType | undefined; export declare function isBoolean(entry: YamlType): BooleanType | undefined; export declare function isIntegerType(entry: YamlType): IntegerType | undefined; export declare function isNumberType(entry: YamlType): NumberType | undefined; export declare function isArrayType(entry: YamlType): ArrayType | undefined; export declare function isObjectType(entry: YamlType): ObjectType | undefined; export declare function typeDefine(root: ExplicitTypeDeclaration): "string" | "number" | "boolean" | "object" | "integer" | "array"; export declare function isEnum(root: StringType): string[] | undefined; export declare function stringDefiner(root: StringType): string; export declare const typeFinder: { string: typeof isSimpleStringType; boolean: typeof isBoolean; integer: typeof isIntegerType; number: typeof isNumberType; array: typeof isArrayType; object: typeof isObjectType; isNullable: (d: YamlType) => boolean | undefined; }; export {};