/** * Signing fixture for the reporter snippet the CLI prints. * * The CLI does not sign anything itself — it prints a snippet the customer * pastes into their app. This fixture pins the algorithm that snippet * documents, so a careless edit to `buildSigningSnippet()` fails here rather * than surfacing as an unexplained production `401`. * * Signing payload: `${timestamp}.${body}` — the request timestamp, a literal * `.`, then the raw JSON body. Signing the body alone (dropping the timestamp * prefix) removes replay protection and is the exact mistake the snippet and * this fixture guard against. * * The secret is the PROJECT ingest key's signing secret (`his_…`), minted with * the key in the dashboard settings page. The per-watcher `hes_…` secret this * fixture used to model no longer authenticates anything. */ export declare const WATCHER_SIGNATURE_FIXTURE: { /** Test signing secret. NEVER a real credential. */ readonly secret: "his_test_secret_do_not_use_in_production"; /** Unix seconds, as sent in the `X-Hula-Timestamp` header. */ readonly timestamp: "1734556800"; /** * The exact raw request body that was signed. Carries all three dedupe * identity fields (`key`, `errorName`, `errorCode`) because those — and only * those — build the server's fingerprint. */ readonly body: "{\"errorDescription\":\"Payment gateway timed out\",\"key\":\"orders.checkout.timeout\",\"errorName\":\"TimeoutError\",\"errorCode\":\"ETIMEDOUT\",\"environment\":\"production\"}"; /** HMAC-SHA256(secret, `${timestamp}.${body}`) as lowercase hex. */ readonly signatureHex: "fe747ddcc36a1405b9ecc417328fbfdb0459d5c7d4d3b0528b47eed0c0b17045"; }; //# sourceMappingURL=errorWatcher.fixture.d.ts.map