import { FunctionComponent } from 'react'; type GenericObject = Record; /** * VTEX IO Storefront Function Component */ export interface StorefrontFunctionComponent extends FunctionComponent { getSchema?: (props: Props) => Schema; schema?: Schema; defaultProps?: Props; } interface Schema { title: string; type?: Extract; properties?: SchemaProperties; dependencies?: SchemaDependencies; } export type SchemaType = 'array' | 'object' | 'string' | 'boolean' | 'number'; export type UiWidget = | 'image-uploader' | 'textarea' | 'datetime' | 'select' | 'color'; export interface SchemaDependencies { [key: string]: { oneOf: { properties: { [key: string]: Partial; }; }[]; }; } export interface SchemaProperties { __editorItemTitle?: { default: string; title: string; type: Extract; }; [key: string]: SchemaItemProperty; } export interface SchemaItemProperty { type: SchemaType; enumNames?: string[]; //esse funciona junto com o enum enum?: string[]; default?: unknown; title?: string; description?: string; properties?: SchemaProperties; format?: 'date-time'; widget?: { 'ui:widget'?: UiWidget; }; items?: { type: SchemaType; title?: string; properties?: SchemaProperties; default?: unknown; }; }