import { type SchemaArrayValue, type SchemaValue } from "../../core/index.js"; import { type Config, type FormState, type KeyedFieldValues, type UiOption, type FieldErrors } from "../../form/index.js"; import { type ItemTitle } from "./model.js"; export interface ArrayContext { config: () => Config; addable: () => boolean; removable: () => boolean; orderable: () => boolean; copyable: () => boolean; errors: () => FieldErrors; itemTitle: ItemTitle; uiOption: UiOption; length: () => number; set: (index: number, value: SchemaValue | undefined) => void; canAdd: () => boolean; canCopy: (index: number) => boolean; canRemove: (index: number) => boolean; canMoveUp: (index: number) => boolean; canMoveDown: (index: number) => boolean; key: (index: number) => number; itemConfig: (config: Config, item: SchemaValue | undefined, index: number) => Config; pushItem: () => void; moveItemUp: (index: number) => void; moveItemDown: (index: number) => void; copyItem: (index: number) => void; removeItem: (index: number) => void; } export declare function getArrayContext(): ArrayContext; export declare function setArrayContext(ctx: ArrayContext): void; export interface ArrayContextOptions { ctx: FormState; config: () => Config; value: () => SchemaArrayValue | null | undefined; keyedArray: () => KeyedFieldValues; } export declare function createArrayContext({ ctx, config, value, keyedArray, }: ArrayContextOptions): ArrayContext; export declare function createTupleContext({ ctx, config, value, keyedArray, }: ArrayContextOptions): ArrayContext;