import { Connector, CreateConnectorFn } from "../types/connector.js";
import { Config } from "../factories/createConfig.js";
import { ConnectErrorType, ConnectParameters, ConnectReturnType } from "../actions/connect.js";
import { Compute } from "@bigmi/core";
import { MutateOptions } from "@tanstack/query-core";

//#region src/query/connect.d.ts
declare function connectMutationOptions<config extends Config>(config: config): {
  readonly mutationFn: (variables: ConnectVariables<config, Connector | CreateConnectorFn>) => Promise<ConnectData<config>>;
  readonly mutationKey: readonly ["connect"];
};
type ConnectData<config extends Config> = ConnectReturnType<config>;
type ConnectVariables<config extends Config, connector extends Connector | CreateConnectorFn> = ConnectParameters<config, connector>;
type ConnectMutate<config extends Config, context = unknown> = <connector extends config["connectors"][number] | Connector | CreateConnectorFn>(variables: ConnectVariables<config, connector>, options?: Compute<MutateOptions<ConnectData<config>, ConnectErrorType, Compute<ConnectVariables<config, connector>>, context>> | undefined) => void;
type ConnectMutateAsync<config extends Config, context = unknown> = <connector extends config["connectors"][number] | Connector | CreateConnectorFn>(variables: ConnectVariables<config, connector>, options?: Compute<MutateOptions<ConnectData<config>, ConnectErrorType, Compute<ConnectVariables<config, connector>>, context>> | undefined) => Promise<ConnectData<config>>;
//#endregion
export { ConnectData, ConnectMutate, ConnectMutateAsync, ConnectVariables, connectMutationOptions };
//# sourceMappingURL=connect.d.ts.map