import type { ObjectLiteral } from '@authup/kit';
import type { Ref } from 'vue';
type EntityFn<T> = (entity: T) => void | Promise<void>;
type Options<T> = {
    created?: EntityFn<T>;
    updated?: EntityFn<T>;
    deleted?: EntityFn<T>;
};
type StackItem<T> = {
    data: T;
    operation: 'created' | 'deleted' | 'updated';
};
export declare class ListHandlers<T extends ObjectLiteral> {
    protected data: Ref<T[]>;
    protected options: Options<T>;
    protected stack: StackItem<T>[];
    protected stackProcessing: boolean;
    constructor(data: Ref<T[]>, options?: Options<T>);
    protected process(): void;
    created(item: T): void;
    updated(item: T): void;
    deleted(item: T): void;
}
export {};
//# sourceMappingURL=handlers.d.ts.map