import { CreateConnectorFn } from "../types/connector.js";
import { UTXOConnectorParameters, UTXOWalletProvider } from "./types.js";
import { Account } from "@bigmi/core";

//#region src/connectors/magicEden.d.ts
type MagicEdenBitcoinEventMap = {
  accountsChanged(accounts: Account[]): void;
};
type MagicEdenBitcoinEvents = {
  addListener<TEvent extends keyof MagicEdenBitcoinEventMap>(event: TEvent, listener: MagicEdenBitcoinEventMap[TEvent]): void;
  removeListener<TEvent extends keyof MagicEdenBitcoinEventMap>(event: TEvent, listener: MagicEdenBitcoinEventMap[TEvent]): void;
};
type MagicEdenConnectorProperties = {
  getAccounts(): Promise<readonly Account[]>;
  onAccountsChanged(accounts: Account[]): void;
  getInternalProvider(): Promise<MagicEdenBitcoinProvider>;
} & UTXOWalletProvider;
type MagicEdenBitcoinProvider = {
  connect(encodedRequest: string): Promise<{
    addresses: Account[];
  }>;
  signTransaction(encodedRequest: string): Promise<{
    psbtBase64: string;
    txId?: string;
  }>;
} & MagicEdenBitcoinEvents;
declare function magicEden(parameters?: UTXOConnectorParameters): CreateConnectorFn<UTXOWalletProvider | undefined, MagicEdenConnectorProperties>;
declare namespace magicEden {
  export var type: "UTXO";
}
//#endregion
export { MagicEdenBitcoinEventMap, MagicEdenBitcoinEvents, magicEden };
//# sourceMappingURL=magicEden.d.ts.map