import { Observable } from "rxjs";
import { Account, AnyMessage } from "@ledgerhq/types-live";
import type { AppRequest, AppState } from "../actions/app";
import type { Device } from "../actions/types";
import type { ConnectAppEvent, Input as ConnectAppInput } from "../connectApp";
import type { SignMessage, Result } from "./types";
export declare const prepareMessageToSign: (account: Account, message: string) => AnyMessage;
declare const signMessage: SignMessage;
type BaseState = {
    signMessageRequested: AnyMessage | null | undefined;
    signMessageError: Error | null | undefined;
    signMessageResult: string | null | undefined;
};
export type State = AppState & BaseState;
export type Request = AppRequest & {
    message: AnyMessage;
    isACRE?: boolean;
};
export type Input = {
    request: Request;
    deviceId: string;
};
export declare const signMessageExec: ({ request, deviceId }: Input) => Observable<Result>;
export declare const createAction: (connectAppExec: (connectAppInput: ConnectAppInput) => Observable<ConnectAppEvent>, signMessage?: (input: Input) => Observable<Result>) => {
    useHook: (reduxDevice: Device | null | undefined, request: Request) => State;
    mapResult: (state: State) => {
        signature: string | null | undefined;
        error: Error | null | undefined;
    };
};
export default signMessage;
//# sourceMappingURL=index.d.ts.map