/** * `vana app read --grant ` - signed read of granted data, * settling the fee from escrow when `--pay` allows it. * * Flow: resolve the grant at the gateway (grantor = owner), resolve the * owner's Personal Server registrations (every active one - registrations * are push-only and a record can name a dead server), then read. A stored * receipt for this (network, grant, scope) is replayed before any new * settlement, so a retry never pays twice; a new settlement is gated by * `--pay` and `--max-fee` and its X-PAYMENT header is captured into the * receipts store. * * The enclave delivery leg lands when the jobs result-delivery change ships * in the SDK (vana-sdk#211); today every owner readable here serves through * a Personal Server. */ import { type GatewayClient } from "@opendatalabs/vana-sdk"; import { readPersonalServerData } from "@opendatalabs/vana-sdk/direct/personal-server-read"; import { createJobsClient } from "@opendatalabs/vana-sdk/protocol/jobs-client"; import { resolveAppKey } from "../../core/app-key.js"; import { type ReceiptsStore } from "../../core/receipts.js"; import { type RequestsStore } from "../../core/requests-store.js"; import { type AppCommandOptions } from "./outcome.js"; export interface ReadCommandOptions extends AppCommandOptions { grant?: string; /** Settle a 402 from escrow instead of stopping at exit 4. */ pay?: boolean; /** Refuse settlements above this amount, in VANA (decimal). */ maxFee?: string; /** Explicit Personal Server URL, skipping gateway resolution. */ server?: string; } export interface ReadDeps { createClient?: (gatewayUrl: string) => GatewayClient; resolveKey?: typeof resolveAppKey; read?: typeof readPersonalServerData; receipts?: ReceiptsStore; createJobs?: typeof createJobsClient; /** Access-request records, to learn the delivery path for this grant. */ requests?: RequestsStore; } export declare function runAppRead(scope: string, options: ReadCommandOptions, deps?: ReadDeps): Promise; //# sourceMappingURL=read.d.ts.map