import type { UTXOWalletProvider } from './types.js';
import { type Address } from '@bigmi/core';
import type { UTXOConnectorParameters } from './types.js';
export type DynamicWalletConnectorEventMap = {
    accountChange(props: {
        accounts: string[];
    }): void;
};
export type DynamicWalletConnectorEvents = {
    addListener<TEvent extends keyof DynamicWalletConnectorEventMap>(event: TEvent, listener: DynamicWalletConnectorEventMap[TEvent]): void;
    removeListener<TEvent extends keyof DynamicWalletConnectorEventMap>(event: TEvent, listener: DynamicWalletConnectorEventMap[TEvent]): void;
};
export type DynamicWalletConnector = {
    providerId: string;
    name: string;
    id: string;
    getAddress(): string;
    _metadata: {
        icon?: string;
    };
} & DynamicWalletConnectorEvents;
type BitcoinAddress = {
    address: string;
    type: 'ordinals' | 'payment';
    publicKey: string;
};
export type BitcoinSignPsbtRequestSignature = {
    address: string;
    signingIndexes: number[] | undefined;
    disableAddressValidation?: boolean;
};
type BitcoinSignPsbtRequest = {
    allowedSighash: number[];
    unsignedPsbtBase64: string;
    signature?: BitcoinSignPsbtRequestSignature[];
};
type BitcoinSignPsbtResponse = {
    signedPsbt: string;
};
type DynamicBitcoinWallet = {
    connector: DynamicWalletConnector;
    additionalAddresses: BitcoinAddress[];
    address: string;
    isAuthenticated: boolean;
    signPsbt(parameters: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
};
type DynamicConnectorProperties = {
    getAccounts(): Promise<readonly Address[]>;
    onAccountsChanged(accounts: Address[]): void;
    getInternalProvider(): Promise<DynamicWalletConnector>;
} & UTXOWalletProvider;
type DynamicConnectorParameters = {
    wallet: DynamicBitcoinWallet;
} & UTXOConnectorParameters;
export declare function dynamic(parameters: DynamicConnectorParameters): import("../factories/createConnector.js").CreateConnectorFn<UTXOWalletProvider | undefined, DynamicConnectorProperties, Record<string, unknown>>;
export declare namespace dynamic {
    var type: "UTXO";
}
export {};
