import type { CollectionOptimisticActions, CollectionState, FiltersMap } from '@wix/bex-core';
import type { EditableTableState } from './EditableTableState';
export interface EditableTableMutationHandlers<T> {
    /** Factory to create a new empty item with a fresh ID */
    createItem: () => T;
    /** Submit updated items to the server */
    submitUpdate: (items: T[]) => Promise<T[] | void>;
    /** Submit newly created items to the server */
    submitCreate: (items: T[]) => Promise<T[] | void>;
    /** Submit item deletions to the server */
    submitDelete: (items: T[]) => Promise<void>;
}
export declare class MutationState<T, F extends FiltersMap> {
    private readonly _handlers;
    private readonly _optimisticActions;
    private readonly _parent;
    constructor(parent: EditableTableState<T, F>, handlers: EditableTableMutationHandlers<T>, createOptimisticActions: (collection: CollectionState<T, F>) => CollectionOptimisticActions<T, F>);
    init(): () => void;
    addItem(afterItemKey?: string): string;
    duplicateItem(rowKey: string): void;
    deleteItems(rowKeys: string[]): void;
    updateItems(updatedItems: T[]): void;
}
//# sourceMappingURL=MutationState.d.ts.map