export interface AvroSchemaInterface { type: TypeNames; } export declare type Type = NameOrType | NameOrType[]; export declare type NameOrType = TypeNames | TRecord | TArray | TNamed; export declare type TypeNames = "record" | "array" | "null" | "map" | string; export interface Field { name: string; type: Type; default?: string | number | null | boolean | any[]; } export interface TRecord extends AvroSchemaInterface { type: "record"; name: string; namespace: string; fields: Field[]; } export interface TArray extends AvroSchemaInterface { type: "array"; items: Type; } export interface TMap extends AvroSchemaInterface { type: "map"; values: Type; } export interface TEnum extends AvroSchemaInterface { type: "enum"; name: string; symbols: string[]; } export interface TNamed extends AvroSchemaInterface { type: string; }