import { Account, Address, Chain, Hex, ParseAccount, Transport, WalletClient } from 'viem';
import { State, UnsignedState } from './types';
export interface StateSigner {
    getAddress(): Address;
    signState(channelId: Hex, state: UnsignedState): Promise<Hex>;
    signRawMessage(message: Hex): Promise<Hex>;
}
export declare class WalletStateSigner implements StateSigner {
    private readonly walletClient;
    constructor(walletClient: WalletClient<Transport, Chain, ParseAccount<Account>>);
    getAddress(): Address;
    signState(channelId: Hex, state: State): Promise<Hex>;
    signRawMessage(message: Hex): Promise<Hex>;
}
export declare class SessionKeyStateSigner implements StateSigner {
    private readonly sessionKey;
    private readonly account;
    constructor(sessionKey: Hex);
    getAddress(): Address;
    signState(channelId: Hex, state: State): Promise<Hex>;
    signRawMessage(message: Hex): Promise<Hex>;
}
