import { ResolvedSchema } from "../../utils/schema.js";
import { SchemaUIProps } from "./client.js";
import "../../types.js";
import { ReactNode } from "react";
import "react/jsx-runtime";

//#region src/ui/schema/index.d.ts
interface FieldBase {
  description?: ReactNode;
  infoTags?: ReactNode[];
  typeName: string;
  aliasName: string;
  deprecated?: boolean;
}
type SchemaData = FieldBase & ({
  type: 'primitive';
} | {
  type: 'object';
  props: {
    name: string;
    $type: string;
    required: boolean;
  }[];
} | {
  type: 'array';
  item: {
    $type: string;
  };
} | {
  type: 'or';
  items: {
    name: string;
    $type: string;
  }[];
} | {
  type: 'and';
  items: {
    name: string;
    $type: string;
  }[];
});
interface SchemaUIOptions {
  root: ResolvedSchema;
  client: Omit<SchemaUIProps, 'generated'>;
  /**
   * include read only props
   */
  readOnly?: boolean;
  /**
   * include write only props
   */
  writeOnly?: boolean;
}
interface SchemaUIGeneratedData {
  $root: string;
  refs: Record<string, SchemaData>;
}
//#endregion
export { SchemaUIGeneratedData, SchemaUIOptions };
//# sourceMappingURL=index.d.ts.map