import { type SetStateAction } from 'react';
import { type InitialState } from '../util/resolveHookState.js';
export type ListActions<T> = {
    set: (newList: SetStateAction<T[]>) => void;
    push: (...items: T[]) => void;
    updateAt: (index: number, newItem: T) => void;
    insertAt: (index: number, item: T) => void;
    update: (predicate: (iteratedItem: T, newItem: T) => boolean, newItem: T) => void;
    updateFirst: (predicate: (iteratedItem: T, newItem: T) => boolean, newItem: T) => void;
    upsert: (predicate: (iteratedItem: T, newItem: T) => boolean, newItem: T) => void;
    sort: (compareFn?: (a: T, b: T) => number) => void;
    filter: (callbackFn: (value: T, index?: number, array?: T[]) => boolean, thisArg?: any) => void;
    removeAt: (index: number) => void;
    clear: () => void;
    reset: () => void;
};
export declare function useList<T>(initialList: InitialState<T[]>): [T[], ListActions<T>];
