import { Connector } from "../types/connector.js";
import { Config } from "../factories/createConfig.js";
import { Account, Client, Compute } from "@bigmi/core";

//#region src/actions/getConnectorClient.d.ts
type ChainIdParameter<config extends Config, chainId extends config["chains"][number]["id"] | undefined = config["chains"][number]["id"]> = {
  chainId?: (chainId extends config["chains"][number]["id"] ? chainId : undefined) | config["chains"][number]["id"] | undefined;
};
type GetConnectorClientReturnType<config extends Config = Config, chainId extends config["chains"][number]["id"] = config["chains"][number]["id"]> = Compute<Client<config["_internal"]["transports"][chainId], Extract<config["chains"][number], {
  id: chainId;
}>, Account>>;
type ConnectorParameter = {
  connector?: Connector | undefined;
};
type GetConnectorClientParameters<config extends Config = Config, chainId extends config["chains"][number]["id"] = config["chains"][number]["id"]> = Compute<ChainIdParameter<config, chainId> & ConnectorParameter & {
  /**
  * Account to use for the client.
  *
  * - `Account | Address`: An Account MUST exist on the connector.
  * - `null`: Account MAY NOT exist on the connector. This is useful for
  *   actions that can infer the account from the connector (e.g. sending a
  *   call without a connected account – the user will be prompted to select
  *   an account within the wallet).
  */
  account?: Account | null | undefined;
}>;
declare function getConnectorClient<C extends Config, ChainId extends C["chains"][number]["id"]>(config: C, parameters?: GetConnectorClientParameters<C, ChainId>): Promise<GetConnectorClientReturnType<C, ChainId>>;
//#endregion
export { ChainIdParameter, ConnectorParameter, GetConnectorClientParameters, GetConnectorClientReturnType, getConnectorClient };
//# sourceMappingURL=getConnectorClient.d.ts.map