import type { Address } from '@bigmi/core';
import type { BtcAccount } from '../types/account.js';
import type { UTXOConnectorParameters, UTXOWalletProvider } from './types.js';
export type XverseBitcoinEventMap = {
    accountChange(accounts: BtcAccount[]): void;
};
export type XverseBitcoinEvents = {
    addListener<TEvent extends keyof XverseBitcoinEventMap>(event: TEvent, listener: XverseBitcoinEventMap[TEvent]): void;
    removeListener?<TEvent extends keyof XverseBitcoinEventMap>(event: TEvent, listener: XverseBitcoinEventMap[TEvent]): void;
};
type XverseConnectorProperties = {
    getAccounts(): Promise<readonly (BtcAccount | Address)[]>;
    onAccountsChanged(accounts: (BtcAccount | Address)[]): void;
    getInternalProvider(): Promise<XverseBitcoinProvider>;
} & UTXOWalletProvider;
type Purpose = 'ordinals' | 'payment' | 'stacks';
type Error = {
    code: number;
    message: string;
};
interface GetAccountsRequest {
    purposes: Purpose[];
}
interface GetAccountsResponse {
    result?: {
        addresses: BtcAccount[];
    };
    error?: Error;
}
interface RequestPermissionsResponse {
    result?: boolean;
    error?: Error;
}
type XverseBitcoinProvider = {
    request(method: 'signPsbt', options: {
        psbt: string;
        allowedSignHash: number;
        signInputs: Record<string, number[]>;
        broadcast: boolean;
    }): Promise<string>;
    request(method: 'getAccounts' | 'getAddresses', options: GetAccountsRequest): Promise<GetAccountsResponse>;
    request(method: 'wallet_requestPermissions' | 'wallet_renouncePermissions'): Promise<RequestPermissionsResponse>;
} & XverseBitcoinEvents;
export declare function xverse(parameters?: UTXOConnectorParameters): import("../factories/createConnector.js").CreateConnectorFn<UTXOWalletProvider | undefined, XverseConnectorProperties, Record<string, unknown>>;
export declare namespace xverse {
    var type: "UTXO";
}
export {};
