import { FormFieldPresence } from '@sanity/base/presence'; import { ArraySchemaType, Marker, ObjectSchemaType, Path, SchemaType } from '@sanity/types'; import { ToastParams } from '@sanity/ui'; import React from 'react'; import { Subscription } from 'rxjs'; import { PatchEvent } from '../../../PatchEvent'; import { FileLike, Uploader } from '../../../sanity/uploads/types'; import ArrayFunctions from '../common/ArrayFunctions'; import { ArrayItem } from './item'; import type { ArrayMember, InsertEvent, ReferenceItemComponentType } from './types'; declare type Toast = { push: (params: ToastParams) => void; }; export declare function createProtoValue(type: SchemaType): ArrayMember; export interface Props { type: ArraySchemaType; value: ArrayMember[]; compareValue: ArrayMember[]; markers: Marker[]; level: number; onChange: (event: PatchEvent) => void; onFocus: (path: Path) => void; onBlur: () => void; focusPath: Path; readOnly: boolean; ReferenceItemComponent: ReferenceItemComponentType; filterField: () => any; ArrayFunctionsImpl: typeof ArrayFunctions; ArrayItemImpl: typeof ArrayItem; resolveUploader?: (type: SchemaType, file: FileLike) => Uploader | null; resolveInitialValue?: (type: ObjectSchemaType, value: any) => Promise; presence: FormFieldPresence[]; } interface State { isResolvingInitialValue: boolean; } export declare class ArrayInput extends React.Component { static defaultProps: { focusPath: any[]; }; _focusArea: HTMLElement | null; toast: Toast | null; uploadSubscriptions: Record; state: State; insert: (item: ArrayMember, position: 'before' | 'after', path: Path) => void; handlePrepend: (value: ArrayMember) => void; handleAppend: (value: ArrayMember) => void; handleInsert: (event: InsertEvent) => void; handleRemoveItem: (item: ArrayMember) => void; handleFocus: (event: any) => void; openItem: (key: string) => void; removeItem(item: ArrayMember): void; handleItemChange: (event: PatchEvent, item: ArrayMember) => void; handleSortEnd: (event: { newIndex: number; oldIndex: number; }) => void; getMemberTypeOfItem(item: ArrayMember): SchemaType; focus(): void; setFocusArea: (el: HTMLElement | null) => void; handleFixMissingKeys: () => void; setToast: (toast: any | null) => void; handleRemoveNonObjectValues: () => void; handleUpload: ({ file, type, uploader }: { file: File; type: SchemaType; uploader: Uploader; }) => void; handleFocusItem: (item: ArrayMember) => void; render(): React.JSX.Element; } export {}; //# sourceMappingURL=ArrayInput.d.ts.map