import { type Action, type ActionDef, type ActionHandler, type ActionImpl, type ModuleContent } from '../../types/core';
/**
 * Pre-warm the action handlers in the action registry.
 */
export declare function preloadActions(importers: Record<string, () => Promise<ModuleContent>>, actions: ActionDef[]): Promise<void>;
/**
 * Clear the global action handler cache.
 * This is only used for testing.
 */
export declare function clearActionHandlerCache_TEST(): void;
/**
 * The useActionIsLoading hook returns a boolean indicating whether the action is currently in progress. This is
 * currently only supported for single AnnotatedAction instances of actions and will return false in all other cases
 * due to the lack of loading variable to use as a source of truth.
 *
 * @param action - the action to check the loading state of
 * @returns the loading state of the action
 */
export declare function useActionIsLoading(action: Action | undefined | null): boolean;
export declare function useExecuteAction(): (action: ActionImpl | ActionImpl[], input?: any) => Promise<void> | void;
interface UseActionOptions {
    /**
     * Callback to invoke when an unhandled action is encountered.
     * When not defined, an error notification will be shown instead.
     *
     * @param action action implementation
     */
    onUnhandledAction?: ActionHandler;
}
/**
 * Consume an action def from the framework and return a callback function that can be used to trigger it
 * and a loading state boolean indicating whether an action is currently in progress
 *
 * @param action the action passed in
 * @param options optional extra options for the hook
 */
export default function useAction(action: Action | undefined | null, options?: UseActionOptions): (input?: any) => Promise<void>;
export {};
//# sourceMappingURL=use-action.d.ts.map