import type { AgentMeta } from "../settings.js"; /** * Interface for agent-key signing strategies. * The AsterAdapter consumes this interface, never a concrete class. * * Signature shape mirrors EvmSigner.signTypedData(domain, types, message) so * call sites can cast to `EvmSigner & AgentSigningStrategy` and dispatch * uniformly. The return type differs from EvmSigner (which returns string): * AgentSigningStrategy returns { signature, r, s, v } so callers can pull * raw r/s/v if needed. */ export interface AgentSigningStrategy { signTypedData(domain: Record, types: Record>, message: Record): Promise<{ signature: string; r: string; s: string; v: number; }>; getAddress(): string; } /** * Strategy: pass the OWS api-key token in the passphrase slot. * This is the default (Option A γ-path). Validity depends on Step 0a spike. * Wraps OwsEvmSigner.create(walletName, owsKeyToken). */ export declare class TokenAsPassphraseStrategy implements AgentSigningStrategy { private _walletName; private _owsKeyToken; private _address; constructor(walletName: string, owsKeyToken: string, address: string); getAddress(): string; signTypedData(domain: Record, types: Record>, message: Record): Promise<{ signature: string; r: string; s: string; v: number; }>; } /** * Strategy: read the token from the OWS keyfile by api-key id and pass it * explicitly. Stub until Step 0a determines whether this path is needed. */ export declare class ExplicitTokenStrategy implements AgentSigningStrategy { constructor(_walletName: string, _apiKeyId: string, _address: string); getAddress(): string; signTypedData(_domain: Record, _types: Record>, _message: Record): Promise<{ signature: string; r: string; s: string; v: number; }>; } /** * Factory: returns the appropriate signing strategy for the given agent meta + * OWS api-key token. Defaults to TokenAsPassphraseStrategy per Option A γ-path. * Will switch based on Step 0a spike outcome. */ export declare function agentSigningStrategyFor(meta: AgentMeta, owsKeyToken: string): AgentSigningStrategy;