type Comparable = any;
export type ModelController<T> = {
    get items(): T[];
    set items(value: T[]);
    create(): T;
    id(obj: T): Comparable;
};
/**
 * useArrayModel is a composable function that provides methods to manage an array of items
 * in a model-like structure. It allows adding, updating, and removing items from the array.
 *
 * @param controller - An object that controls the model, providing methods to create items,
 *                    access the current items, and identify items by their unique ID.
 * @returns An object with methods to add, update, and remove items from the array.
 */
export declare function useArrayModel<T>(controller: ModelController<T>): {
    addItem: () => void;
    updateItem: (override?: T) => void;
    removeItem: (override: T) => void;
};
export {};
