/**
 * PS Lite owner-binding message and signing helpers.
 *
 * PS Lite uses this replayable personal-sign message as a wallet-owned input
 * for opening the user's local encrypted runtime. This is intentionally
 * separate from Personal Server registration, which is EIP-712 typed data.
 *
 * @category Protocol
 */
import { type Account, type Address, type Hex, type SignableMessage } from "viem";
export declare const PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION = "vana.account.v1";
export declare const PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE = "ps-lite-owner";
export declare const PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX: "vana.account.v1:ps-lite-owner:";
export type PersonalServerLiteOwnerBindingPurpose = typeof PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE;
export type PersonalServerLiteOwnerBindingMessage = `${typeof PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX}${Lowercase<Address>}`;
export interface PersonalServerLiteOwnerBindingSigner {
    address: Address;
    signMessage(input: {
        message: PersonalServerLiteOwnerBindingMessage;
    }): Promise<Hex> | Hex;
}
export interface ViemPersonalServerLiteOwnerBindingWalletClient {
    account?: Account | Address | null;
    signMessage(input: {
        account?: Account | Address;
        message: SignableMessage;
    }): Promise<Hex>;
}
export type ViemPersonalServerLiteOwnerBindingSignerSource = PersonalServerLiteOwnerBindingSigner | ViemPersonalServerLiteOwnerBindingWalletClient;
export interface BuildPersonalServerLiteOwnerBindingSignatureInput {
    signer: PersonalServerLiteOwnerBindingSigner;
}
export interface PersonalServerLiteOwnerBindingSignature {
    signature: Hex;
    signerAddress: Address;
    message: PersonalServerLiteOwnerBindingMessage;
    purpose: PersonalServerLiteOwnerBindingPurpose;
}
export declare function buildPersonalServerLiteOwnerBindingMessage(ownerAddress: Address): PersonalServerLiteOwnerBindingMessage;
export declare function createViemPersonalServerLiteOwnerBindingSigner(source: ViemPersonalServerLiteOwnerBindingSignerSource, options?: {
    account?: Account | Address;
}): PersonalServerLiteOwnerBindingSigner;
export declare function buildPersonalServerLiteOwnerBindingSignature(input: BuildPersonalServerLiteOwnerBindingSignatureInput): Promise<PersonalServerLiteOwnerBindingSignature>;
export declare const signPersonalServerLiteOwnerBinding: typeof buildPersonalServerLiteOwnerBindingSignature;
