import { type BalanceResult, type CancelListingRequest, type ConnectParams, type ConnectResult, type CreateListingRequest, type EventHandler, type InscribeRequest, type InscribeResult, type ListOptions, type ListingResult, type OneSatConfig, type OneSatEvent, type OneSatProvider, type OrdinalOutput, type PurchaseListingRequest, type SendOrdinalsRequest, type SendResult, type SignMessageResult, type SignTransactionRequest, type SignTransactionResult, type TokenOutput, type TransferTokenRequest, type Utxo } from './types';
/**
 * Browser implementation of the OneSat wallet provider
 * Uses popup-based communication with the wallet
 */
export declare class OneSatBrowserProvider implements OneSatProvider {
    /** Identifies this as the OneSat provider (for detection like Phantom's isPhantom) */
    readonly isOneSat: true;
    private popupManager;
    private connection;
    private events;
    private popupOrigin;
    constructor(config?: OneSatConfig);
    /**
     * Handle messages from the wallet popup
     */
    private handleMessage;
    /**
     * Generate a unique request ID
     */
    private generateRequestId;
    /**
     * Send a request that requires popup approval
     */
    private sendRequest;
    connect(params?: ConnectParams): Promise<ConnectResult>;
    disconnect(): Promise<void>;
    isConnected(): boolean;
    /**
     * Get the current connection (throws if not connected)
     */
    private requireConnection;
    signTransaction(request: SignTransactionRequest): Promise<SignTransactionResult>;
    signMessage(message: string): Promise<SignMessageResult>;
    inscribe(request: InscribeRequest): Promise<InscribeResult>;
    sendOrdinals(request: SendOrdinalsRequest): Promise<SendResult>;
    createListing(request: CreateListingRequest): Promise<ListingResult>;
    purchaseListing(request: PurchaseListingRequest): Promise<SendResult>;
    cancelListing(request: CancelListingRequest): Promise<SendResult>;
    transferToken(request: TransferTokenRequest): Promise<SendResult>;
    getBalance(): Promise<BalanceResult>;
    getOrdinals(options?: ListOptions): Promise<OrdinalOutput[]>;
    getTokens(options?: ListOptions): Promise<TokenOutput[]>;
    getUtxos(): Promise<Utxo[]>;
    on<T = unknown>(event: OneSatEvent, handler: EventHandler<T>): void;
    off(event: OneSatEvent, handler: EventHandler): void;
    getAddresses(): {
        paymentAddress: string;
        ordinalAddress: string;
    } | null;
    getIdentityPubKey(): string | null;
    /**
     * Clean up resources
     */
    destroy(): void;
}
//# sourceMappingURL=provider.d.ts.map