import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
export interface MRepeaterItem {
}
export interface MRepeaterOperations {
    canAdd: boolean;
    canDelete: boolean;
}
export interface MRepeaterItemProps<T = MRepeaterItem> {
    item: T;
    index: number;
}
export interface MRepeaterRowProps<T = MRepeaterItem> extends MRepeaterItemProps<T> {
    canDelete: boolean;
}
export interface MRepeaterRowListeners {
    onDelete(): void;
}
export declare class MRepeater extends ModulVue {
    list: MRepeaterItem[];
    addButtonLabel?: string;
    deleteButtonLabel?: string;
    emptyMessage?: string;
    tag: string;
    itemKey?: string;
    operations: MRepeaterOperations;
    minItemCount: number;
    maxItemCount: number;
    mounted(): void;
    onAddBtnClick(): void;
    onDeleteBtnClick(index: number): void;
    getRowProps(item: MRepeaterItem, index: number): MRepeaterRowProps;
    getRowListeners(item: MRepeaterItem, index: number): MRepeaterRowListeners;
    getItemKey(item: MRepeaterItem, index: number): unknown | number;
    getItemProps(item: MRepeaterItem, index: number): MRepeaterItemProps;
    readonly addBtnLabel: string;
    readonly deleteBtnLabel: string;
    readonly canAdd: boolean;
    readonly canDelete: boolean;
    readonly itemTag: string;
    readonly hasRowSlot: boolean;
}
declare const RepeaterPlugin: PluginObject<any>;
export default RepeaterPlugin;
//# sourceMappingURL=repeater.d.ts.map