import { IGeneralFieldState, GeneralField, FormPathPattern } from '@formily/core'; export declare type SchemaEnum = Array; export declare type SchemaTypes = 'string' | 'object' | 'array' | 'number' | 'boolean' | 'void' | 'date' | 'datetime' | (string & {}); export declare type SchemaProperties = Record>; export declare type SchemaPatch = (schema: ISchema) => ISchema; export declare type SchemaKey = string | number; export declare type SchemaEffectTypes = 'onFieldInit' | 'onFieldMount' | 'onFieldUnmount' | 'onFieldValueChange' | 'onFieldInputValueChange' | 'onFieldInitialValueChange' | 'onFieldValidateStart' | 'onFieldValidateEnd' | 'onFieldValidateFailed' | 'onFieldValidateSuccess'; export declare type SchemaReaction = { dependencies?: Array | Record; when?: string | boolean; target?: string; effects?: (SchemaEffectTypes | (string & {}))[]; fulfill?: { state?: Stringify; schema?: ISchema; run?: string; }; otherwise?: { state?: Stringify; schema?: ISchema; run?: string; }; [key: string]: any; } | ((field: Field, scope: IScopeContext) => void); export declare type SchemaReactions = SchemaReaction | SchemaReaction[]; export declare type SchemaItems = ISchema | ISchema[]; export declare type SchemaComponents = Record; export interface ISchemaFieldUpdateRequest { state?: Stringify; schema?: ISchema; run?: string; } export interface IScopeContext { [key: string]: any; } export interface IFieldStateSetterOptions { field: GeneralField; target?: FormPathPattern; request: ISchemaFieldUpdateRequest; runner?: string; scope?: IScopeContext; } export interface ISchemaTransformerOptions { scope?: IScopeContext; } export declare type Slot = { target: string; isRenderProp?: boolean; }; export declare type Stringify

= { [key in keyof P]?: P[key] | (string & {}); }; export declare type ISchema = Stringify<{ version?: string; name?: SchemaKey; title?: Message; description?: Message; default?: any; readOnly?: boolean; writeOnly?: boolean; type?: SchemaTypes; enum?: SchemaEnum; const?: any; multipleOf?: number; maximum?: number; exclusiveMaximum?: number; minimum?: number; exclusiveMinimum?: number; maxLength?: number; minLength?: number; pattern?: string | RegExp; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; required?: string[] | boolean | string; format?: string; $ref?: string; $namespace?: string; /** nested json schema spec **/ definitions?: SchemaProperties; properties?: SchemaProperties; items?: SchemaItems; additionalItems?: ISchema; patternProperties?: SchemaProperties; additionalProperties?: ISchema; ['x-value']?: any; ['x-index']?: number; ['x-pattern']?: Pattern; ['x-display']?: Display; ['x-validator']?: Validator; ['x-decorator']?: Decorator | (string & {}) | ((...args: any[]) => any); ['x-decorator-props']?: DecoratorProps; ['x-component']?: Component | (string & {}) | ((...args: any[]) => any); ['x-component-props']?: ComponentProps; ['x-reactions']?: SchemaReactions; ['x-content']?: any; ['x-data']?: any; ['x-visible']?: boolean; ['x-hidden']?: boolean; ['x-disabled']?: boolean; ['x-editable']?: boolean; ['x-read-only']?: boolean; ['x-read-pretty']?: boolean; ['x-compile-omitted']?: string[]; [key: `x-${string | number}` | symbol]: any; }>;