import { Emitter, EventData } from "./createEmitter.js"; import { Storage } from "../types/storage.js"; import { ConnectorEventMap, CreateConnectorFn } from "../types/connector.js"; import { Account, BtcRpcRequestFn, Chain, ChainId, Client, ClientConfig, Compute, ExactPartial, LooseOmit, OneOf, Transport as Transport$1 } from "@bigmi/core"; import { Mutate, StoreApi } from "zustand/vanilla"; //#region src/factories/createConfig.d.ts declare function createConfig, const connectorFns extends readonly CreateConnectorFn[]>(parameters: CreateConfigParameters): Config; type CreateConfigParameters = Record, connectorFns extends readonly CreateConnectorFn[] = readonly CreateConnectorFn[]> = Compute<{ chains: chains; connectors?: connectorFns | undefined; multiInjectedProviderDiscovery?: boolean | undefined; storage?: Storage | null | undefined; ssr?: boolean | undefined; syncConnectedChain?: boolean | undefined; } & OneOf<({ transports: transports; } & { [key in keyof ClientConfig$1]?: ClientConfig$1[key] | { [_ in chains[number]["id"]]?: ClientConfig$1[key] | undefined } | undefined }) | { client(parameters: { chain: chains[number]; }): Client; }>>; type Config = Record, connectorFns extends readonly CreateConnectorFn[] = readonly CreateConnectorFn[]> = { readonly chains: chains; readonly connectors: readonly Connector[]; readonly storage: Storage | null; readonly state: State; setState(value: State | ((state: State) => State)): void; subscribe(selector: (state: State) => state, listener: (state: state, previousState: state) => void, options?: { emitImmediately?: boolean | undefined; equalityFn?: ((a: state, b: state) => boolean) | undefined; } | undefined): () => void; getClient(parameters?: { chainId?: chainId | chains[number]["id"] | undefined; }): Client>; /** * Not part of versioned API, proceed with caution. * @internal */ _internal: Internal; }; type Internal = Record> = { readonly store: Mutate, [["zustand/persist", any]]>; readonly ssr: boolean; readonly syncConnectedChain: boolean; readonly transports: transports; chains: { setState(value: readonly [Chain, ...Chain[]] | ((state: readonly [Chain, ...Chain[]]) => readonly [Chain, ...Chain[]])): void; subscribe(listener: (state: readonly [Chain, ...Chain[]], prevState: readonly [Chain, ...Chain[]]) => void): () => void; }; connectors: { setup(connectorFn: connectorFn): Connector; setState(value: Connector[] | ((state: Connector[]) => Connector[])): void; subscribe(listener: (state: Connector[], prevState: Connector[]) => void): () => void; }; events: { change(data: EventData): void; connect(data: EventData): void; disconnect(data: EventData): void; }; }; type State = { chainId: chains[number]["id"]; connections: Map; current: string | null; status: "connected" | "connecting" | "disconnected" | "reconnecting"; }; type PartializedState = Compute>>; type Connection = { accounts: readonly [Account, ...Account[]]; chainId: ChainId; connector: Connector; }; type Connector = ReturnType & { emitter: Emitter; uid: string; }; type Transport, btcRequestFn extends BtcRpcRequestFn = BtcRpcRequestFn> = (params: Parameters>[0] & { connectors?: StoreApi | undefined; }) => ReturnType>; type ClientConfig$1 = LooseOmit; //#endregion export { Config, Connection, Connector, CreateConfigParameters, PartializedState, State, Transport, createConfig }; //# sourceMappingURL=createConfig.d.ts.map