/** * Per-session pixel-passthrough consent state. * * - `denied` (default): pixels never reach an external AI provider. * `projectForAi` swaps `bytes_base64` for a `bytes_omitted` directive * pointing the AI at the `/vision grant` affordance. * - `session`: the user granted pixel passthrough for the lifetime of * this session. External providers receive bytes when sensitivity * permits. Reverts to `denied` on session end (no persistence). * * Future extensions (deferred until per-domain demand lands): a * `{ kind: "domain"; domains: string[] }` variant for "always allow on * example.com" — same shape as browser camera/mic permissions. Adding * a variant is additive; existing consumers route on the string-literal * cases they care about. * * Sovereign providers (`on-device` mode) bypass this gate entirely — * the bytes never cross a network boundary. */ export type PixelConsentState = "denied" | "session"; /** Default pixel consent for a fresh session — fail-closed. */ export declare const DEFAULT_PIXEL_CONSENT: PixelConsentState; /** * Structured reason a `bytes_omitted` directive carries when pixels were * stripped. Lets the AI's perception doctrine route to the right * remediation: a `consent_required` strip points at `/vision grant`; * a `sensitivity_blocked` strip points at `/sensitivity none`; a * `no_capability` strip points at "switch provider." The AI doesn't * have to parse human text — it routes on the typed reason. */ export type PixelOmittedReason = "consent_required" | "sensitivity_blocked" | "no_capability"; //# sourceMappingURL=pixel-consent.d.ts.map