import type { ConsentState } from "../types.ts"; /** * Build `gcs` in the shape expected by the Google tag / GA4 collect wire format: * `G1` + encode(ad_storage_state) + encode(analytics_storage_state) */ export declare function buildGcs({ consent }: { consent: ConsentState; }): string; /** * Build `gcd` based on Consent Mode v2 state transitions. * * Uses the letter meanings described in Simo Ahava’s Consent Mode v2 guide: * - `l`: not set * - `p`: denied by default (no update) * - `q`: denied by default and after update * - `t`: granted by default (no update) * - `r`: denied by default, granted after update * - `m`: denied after update (no default) * - `n`: granted after update (no default) * - `u`: granted by default, denied after update * - `v`: granted by default and after update * * Reference: https://www.simoahava.com/analytics/consent-mode-v2-google-tags/ * * Note: The official `gcd` encoding contains more metadata than just the * consent transitions. For our purposes we encode the transition letters for * the 4 main consent signals and preserve the observed framing: * - prefix: `13` * - suffix: `l1` * * This ensures the known baselines match: * - all denied (default denied, no update): `13p3p3p2p5l1` * - all granted (default denied, update granted): `13r3r3r2r5l1` */ export declare function buildGcd({ consentDefault, consentUpdate, }: { consentDefault: ConsentState; consentUpdate: ConsentState; }): string;