import { JSX } from "solid-js"; import type { Submission, SubmissionStub, NarrowResponse } from "../types.js"; export type Action, U, V = T> = (T extends [FormData | URLSearchParams] | [] ? JSX.SerializableAttributeValue : unknown) & ((...vars: T) => Promise>) & { url: string; with(this: (this: any, ...args: [...A, ...B]) => Promise>, ...args: A): Action; }; export declare const actions: Map>; export declare function useSubmissions, U, V>(fn: Action, filter?: (input: V) => boolean): Submission>[] & { pending: boolean; }; export declare function useSubmission, U, V>(fn: Action, filter?: (input: V) => boolean): Submission> | SubmissionStub; export declare function useAction, U, V>(action: Action): (...args: Parameters>) => Promise>; export declare function action, U = void>(fn: (...args: T) => Promise, name?: string): Action; export declare function action, U = void>(fn: (...args: T) => Promise, options?: { name?: string; onComplete?: (s: Submission) => void; }): Action;