import type { Component } from 'vue';
export interface CustomAction {
    title: string;
    component: Component;
    condition?: (item: any) => boolean;
}
export interface CustomButtonAction {
    label: string;
    color?: string;
    onClick: (item: any) => void;
    disabled?: boolean | ((item: any) => boolean);
    icon?: string;
    outlined?: boolean;
    rounded?: boolean;
    class?: string;
    tooltip?: string;
}
export interface ActionOptions {
    actions?: ('create' | 'edit' | 'delete' | 'view')[];
    routes?: Record<string, string>;
    downloadLink?: Record<string, string>;
    customActions?: CustomAction[];
    customButtons?: CustomButtonAction[];
    customButtonsFn?: (item: any) => CustomButtonAction[];
    showRefreshButton?: boolean;
}
export declare function useTableActions(options?: ActionOptions): {
    dialog: import("vue").Ref<boolean, boolean>;
    deleteDialog: import("vue").Ref<boolean, boolean>;
    actionDialog: import("vue").Ref<boolean, boolean>;
    isEditing: import("vue").Ref<boolean, boolean>;
    editedItem: import("vue").Ref<Record<string, any>, Record<string, any>>;
    formModel: import("vue").Ref<Record<string, any>, Record<string, any>>;
    itemToDelete: import("vue").Ref<Record<string, any>, Record<string, any>>;
    currentAction: import("vue").Ref<{
        title: string;
        component: import("vue").FunctionalComponent<any, {}, any, {}> | {
            new (...args: any[]): any;
            __isFragment?: never;
            __isTeleport?: never;
            __isSuspense?: never;
        } | {
            [x: string]: any;
            setup?: (this: void, props: import("@vue/shared").LooseRequired<any>, ctx: {
                attrs: import("vue").Attrs;
                slots: Readonly<{
                    [name: string]: import("vue").Slot<any>;
                }>;
                emit: ((event: unknown, ...args: any[]) => void) | ((event: string, ...args: any[]) => void);
                expose: <Exposed extends Record<string, any> = Record<string, any>>(exposed?: Exposed) => void;
            }) => any;
            name?: string;
            template?: string | object;
            render?: Function;
            components?: Record<string, Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
            directives?: Record<string, import("vue").Directive<any, any, string, any>>;
            inheritAttrs?: boolean;
            emits?: any;
            slots?: {};
            expose?: string[];
            serverPrefetch?: () => void | Promise<any>;
            compilerOptions?: {
                isCustomElement?: (tag: string) => boolean;
                whitespace?: "preserve" | "condense";
                comments?: boolean;
                delimiters?: [string, string];
            };
            call?: (this: unknown, ...args: unknown[]) => never;
            __isFragment?: never;
            __isTeleport?: never;
            __isSuspense?: never;
            __defaults?: {};
            compatConfig?: {
                GLOBAL_MOUNT?: boolean | "suppress-warning";
                GLOBAL_MOUNT_CONTAINER?: boolean | "suppress-warning";
                GLOBAL_EXTEND?: boolean | "suppress-warning";
                GLOBAL_PROTOTYPE?: boolean | "suppress-warning";
                GLOBAL_SET?: boolean | "suppress-warning";
                GLOBAL_DELETE?: boolean | "suppress-warning";
                GLOBAL_OBSERVABLE?: boolean | "suppress-warning";
                GLOBAL_PRIVATE_UTIL?: boolean | "suppress-warning";
                CONFIG_SILENT?: boolean | "suppress-warning";
                CONFIG_DEVTOOLS?: boolean | "suppress-warning";
                CONFIG_KEY_CODES?: boolean | "suppress-warning";
                CONFIG_PRODUCTION_TIP?: boolean | "suppress-warning";
                CONFIG_IGNORED_ELEMENTS?: boolean | "suppress-warning";
                CONFIG_WHITESPACE?: boolean | "suppress-warning";
                CONFIG_OPTION_MERGE_STRATS?: boolean | "suppress-warning";
                INSTANCE_SET?: boolean | "suppress-warning";
                INSTANCE_DELETE?: boolean | "suppress-warning";
                INSTANCE_DESTROY?: boolean | "suppress-warning";
                INSTANCE_EVENT_EMITTER?: boolean | "suppress-warning";
                INSTANCE_EVENT_HOOKS?: boolean | "suppress-warning";
                INSTANCE_CHILDREN?: boolean | "suppress-warning";
                INSTANCE_LISTENERS?: boolean | "suppress-warning";
                INSTANCE_SCOPED_SLOTS?: boolean | "suppress-warning";
                INSTANCE_ATTRS_CLASS_STYLE?: boolean | "suppress-warning";
                OPTIONS_DATA_FN?: boolean | "suppress-warning";
                OPTIONS_DATA_MERGE?: boolean | "suppress-warning";
                OPTIONS_BEFORE_DESTROY?: boolean | "suppress-warning";
                OPTIONS_DESTROYED?: boolean | "suppress-warning";
                WATCH_ARRAY?: boolean | "suppress-warning";
                PROPS_DEFAULT_THIS?: boolean | "suppress-warning";
                V_ON_KEYCODE_MODIFIER?: boolean | "suppress-warning";
                CUSTOM_DIR?: boolean | "suppress-warning";
                ATTR_FALSE_VALUE?: boolean | "suppress-warning";
                ATTR_ENUMERATED_COERCION?: boolean | "suppress-warning";
                TRANSITION_CLASSES?: boolean | "suppress-warning";
                TRANSITION_GROUP_ROOT?: boolean | "suppress-warning";
                COMPONENT_ASYNC?: boolean | "suppress-warning";
                COMPONENT_FUNCTIONAL?: boolean | "suppress-warning";
                COMPONENT_V_MODEL?: boolean | "suppress-warning";
                RENDER_FUNCTION?: boolean | "suppress-warning";
                FILTERS?: boolean | "suppress-warning";
                PRIVATE_APIS?: boolean | "suppress-warning";
                MODE?: 2 | 3 | ((comp: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>) => 2 | 3);
            };
            data?: (this: any, vm: any) => any;
            computed?: import("vue").ComputedOptions;
            methods?: import("vue").MethodOptions;
            watch?: {
                [x: string]: (string | import("vue").WatchCallback | ({
                    handler: string | import("vue").WatchCallback;
                } & import("vue").WatchOptions<boolean>)) | (string | import("vue").WatchCallback | ({
                    handler: string | import("vue").WatchCallback;
                } & import("vue").WatchOptions<boolean>))[];
            };
            provide?: import("vue").ComponentProvideOptions;
            inject?: {} | string[];
            filters?: Record<string, Function>;
            mixins?: any[];
            extends?: any;
            beforeCreate?: () => any;
            created?: () => any;
            beforeMount?: () => any;
            mounted?: () => any;
            beforeUpdate?: () => any;
            updated?: () => any;
            activated?: () => any;
            deactivated?: () => any;
            beforeDestroy?: () => any;
            beforeUnmount?: () => any;
            destroyed?: () => any;
            unmounted?: () => any;
            renderTracked?: (e: import("vue").DebuggerEvent) => void;
            renderTriggered?: (e: import("vue").DebuggerEvent) => void;
            errorCaptured?: (err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>, {}, {}, "", {}, any>, info: string) => boolean | void;
            delimiters?: [string, string];
            __differentiator?: string | number | symbol;
            __isBuiltIn?: boolean;
            __file?: string;
            __name?: string;
            beforeRouteEnter?: import("vue-router").NavigationGuardWithThis<undefined>;
            beforeRouteUpdate?: import("vue-router").NavigationGuard;
            beforeRouteLeave?: import("vue-router").NavigationGuard;
        };
        condition?: (item: any) => boolean;
    }, CustomAction | {
        title: string;
        component: import("vue").FunctionalComponent<any, {}, any, {}> | {
            new (...args: any[]): any;
            __isFragment?: never;
            __isTeleport?: never;
            __isSuspense?: never;
        } | {
            [x: string]: any;
            setup?: (this: void, props: import("@vue/shared").LooseRequired<any>, ctx: {
                attrs: import("vue").Attrs;
                slots: Readonly<{
                    [name: string]: import("vue").Slot<any>;
                }>;
                emit: ((event: unknown, ...args: any[]) => void) | ((event: string, ...args: any[]) => void);
                expose: <Exposed extends Record<string, any> = Record<string, any>>(exposed?: Exposed) => void;
            }) => any;
            name?: string;
            template?: string | object;
            render?: Function;
            components?: Record<string, Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
            directives?: Record<string, import("vue").Directive<any, any, string, any>>;
            inheritAttrs?: boolean;
            emits?: any;
            slots?: {};
            expose?: string[];
            serverPrefetch?: () => void | Promise<any>;
            compilerOptions?: {
                isCustomElement?: (tag: string) => boolean;
                whitespace?: "preserve" | "condense";
                comments?: boolean;
                delimiters?: [string, string];
            };
            call?: (this: unknown, ...args: unknown[]) => never;
            __isFragment?: never;
            __isTeleport?: never;
            __isSuspense?: never;
            __defaults?: {};
            compatConfig?: {
                GLOBAL_MOUNT?: boolean | "suppress-warning";
                GLOBAL_MOUNT_CONTAINER?: boolean | "suppress-warning";
                GLOBAL_EXTEND?: boolean | "suppress-warning";
                GLOBAL_PROTOTYPE?: boolean | "suppress-warning";
                GLOBAL_SET?: boolean | "suppress-warning";
                GLOBAL_DELETE?: boolean | "suppress-warning";
                GLOBAL_OBSERVABLE?: boolean | "suppress-warning";
                GLOBAL_PRIVATE_UTIL?: boolean | "suppress-warning";
                CONFIG_SILENT?: boolean | "suppress-warning";
                CONFIG_DEVTOOLS?: boolean | "suppress-warning";
                CONFIG_KEY_CODES?: boolean | "suppress-warning";
                CONFIG_PRODUCTION_TIP?: boolean | "suppress-warning";
                CONFIG_IGNORED_ELEMENTS?: boolean | "suppress-warning";
                CONFIG_WHITESPACE?: boolean | "suppress-warning";
                CONFIG_OPTION_MERGE_STRATS?: boolean | "suppress-warning";
                INSTANCE_SET?: boolean | "suppress-warning";
                INSTANCE_DELETE?: boolean | "suppress-warning";
                INSTANCE_DESTROY?: boolean | "suppress-warning";
                INSTANCE_EVENT_EMITTER?: boolean | "suppress-warning";
                INSTANCE_EVENT_HOOKS?: boolean | "suppress-warning";
                INSTANCE_CHILDREN?: boolean | "suppress-warning";
                INSTANCE_LISTENERS?: boolean | "suppress-warning";
                INSTANCE_SCOPED_SLOTS?: boolean | "suppress-warning";
                INSTANCE_ATTRS_CLASS_STYLE?: boolean | "suppress-warning";
                OPTIONS_DATA_FN?: boolean | "suppress-warning";
                OPTIONS_DATA_MERGE?: boolean | "suppress-warning";
                OPTIONS_BEFORE_DESTROY?: boolean | "suppress-warning";
                OPTIONS_DESTROYED?: boolean | "suppress-warning";
                WATCH_ARRAY?: boolean | "suppress-warning";
                PROPS_DEFAULT_THIS?: boolean | "suppress-warning";
                V_ON_KEYCODE_MODIFIER?: boolean | "suppress-warning";
                CUSTOM_DIR?: boolean | "suppress-warning";
                ATTR_FALSE_VALUE?: boolean | "suppress-warning";
                ATTR_ENUMERATED_COERCION?: boolean | "suppress-warning";
                TRANSITION_CLASSES?: boolean | "suppress-warning";
                TRANSITION_GROUP_ROOT?: boolean | "suppress-warning";
                COMPONENT_ASYNC?: boolean | "suppress-warning";
                COMPONENT_FUNCTIONAL?: boolean | "suppress-warning";
                COMPONENT_V_MODEL?: boolean | "suppress-warning";
                RENDER_FUNCTION?: boolean | "suppress-warning";
                FILTERS?: boolean | "suppress-warning";
                PRIVATE_APIS?: boolean | "suppress-warning";
                MODE?: 2 | 3 | ((comp: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>) => 2 | 3);
            };
            data?: (this: any, vm: any) => any;
            computed?: import("vue").ComputedOptions;
            methods?: import("vue").MethodOptions;
            watch?: {
                [x: string]: (string | import("vue").WatchCallback | ({
                    handler: string | import("vue").WatchCallback;
                } & import("vue").WatchOptions<boolean>)) | (string | import("vue").WatchCallback | ({
                    handler: string | import("vue").WatchCallback;
                } & import("vue").WatchOptions<boolean>))[];
            };
            provide?: import("vue").ComponentProvideOptions;
            inject?: {} | string[];
            filters?: Record<string, Function>;
            mixins?: any[];
            extends?: any;
            beforeCreate?: () => any;
            created?: () => any;
            beforeMount?: () => any;
            mounted?: () => any;
            beforeUpdate?: () => any;
            updated?: () => any;
            activated?: () => any;
            deactivated?: () => any;
            beforeDestroy?: () => any;
            beforeUnmount?: () => any;
            destroyed?: () => any;
            unmounted?: () => any;
            renderTracked?: (e: import("vue").DebuggerEvent) => void;
            renderTriggered?: (e: import("vue").DebuggerEvent) => void;
            errorCaptured?: (err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>, {}, {}, "", {}, any>, info: string) => boolean | void;
            delimiters?: [string, string];
            __differentiator?: string | number | symbol;
            __isBuiltIn?: boolean;
            __file?: string;
            __name?: string;
            beforeRouteEnter?: import("vue-router").NavigationGuardWithThis<undefined>;
            beforeRouteUpdate?: import("vue-router").NavigationGuard;
            beforeRouteLeave?: import("vue-router").NavigationGuard;
        };
        condition?: (item: any) => boolean;
    }>;
    hasAnyActions: import("vue").ComputedRef<boolean>;
    openDialog: (item?: any) => void;
    openDeleteDialog: (item: any) => void;
    openActionDialog: (action: CustomAction, item: any) => void;
    resetDialogs: () => void;
    getItemActions: (item: any) => CustomButtonAction[];
    shouldShowAction: (action: CustomAction, item: any) => boolean;
};
//# sourceMappingURL=useTableActions.d.ts.map