import { RPCHandler } from "@ledgerhq/wallet-api-server";
import { Account, AccountLike, AnyMessage, Operation, SignedOperation } from "@ledgerhq/types-live";
import { MessageSignParams, MessageSignResult, SignOptions, TransactionOptions, TransactionSignAndBroadcastParams, TransactionSignAndBroadcastResult, TransactionSignParams, TransactionSignResult, RegisterYieldBearingEthereumAddressParams, RegisterYieldBearingEthereumAddressResult } from "@ledgerhq/wallet-api-acre-module";
import { Transaction } from "../../generated/types";
import { AppManifest } from "../types";
import { TrackingAPI } from "./tracking";
export type ACREUiHooks = {
    "custom.acre.messageSign": (params: {
        account: AccountLike;
        message: AnyMessage;
        options?: SignOptions;
        onSuccess: (signature: string) => void;
        onError: (error: Error) => void;
        onCancel: () => void;
    }) => void;
    "custom.acre.transactionSign": (params: {
        account: AccountLike;
        parentAccount: Account | undefined;
        signFlowInfos: {
            canEditFees: boolean;
            hasFeesProvided: boolean;
            liveTx: Partial<Transaction>;
        };
        options?: TransactionOptions;
        onSuccess: (signedOperation: SignedOperation) => void;
        onError: (error: Error) => void;
    }) => void;
    "custom.acre.transactionBroadcast"?: (account: AccountLike, parentAccount: Account | undefined, mainAccount: Account, optimisticOperation: Operation) => void;
    "custom.acre.registerAccount": (params: {
        parentAccount: Account;
        accountName: string;
        existingAccounts: Account[];
        onSuccess: () => void;
        onError: (error: Error) => void;
    }) => void;
};
export declare const handlers: ({ accounts, tracking, manifest, uiHooks: { "custom.acre.messageSign": uiMessageSign, "custom.acre.transactionSign": uiTransactionSign, "custom.acre.transactionBroadcast": uiTransactionBroadcast, "custom.acre.registerAccount": uiRegisterAccount, }, }: {
    accounts: AccountLike[];
    tracking: TrackingAPI;
    manifest: AppManifest;
    uiHooks: ACREUiHooks;
}) => {
    readonly "custom.acre.messageSign": RPCHandler<MessageSignResult, MessageSignParams>;
    readonly "custom.acre.transactionSign": RPCHandler<TransactionSignResult, TransactionSignParams>;
    readonly "custom.acre.transactionSignAndBroadcast": RPCHandler<TransactionSignAndBroadcastResult, TransactionSignAndBroadcastParams>;
    readonly "custom.acre.registerYieldBearingEthereumAddress": RPCHandler<RegisterYieldBearingEthereumAddressResult, RegisterYieldBearingEthereumAddressParams>;
};
//# sourceMappingURL=server.d.ts.map