/** * Demo-mode fixtures for the Frihet MCP server (`FRIHET_DEMO=1`). * * These are the canned, PII-SAFE example datasets served by DemoFrihetClient * when the server runs without an API key. NOTHING here is real customer data: * - NIF/CIF are AEAT example patterns (B12345678, X9999999X). * - IBAN is the ECBS/AEAT test IBAN (ES9121000418450200051332). * - Every email is under @example.com (guarded by demo-mode.test.ts). * - Business names are generic, invented ES/EU companies. * * Amounts follow the same field shape the real /v1 REST API returns (see * src/tools/*.ts output schemas + src/client-interface.ts return types), so an * agent evaluating the demo sees exactly the response shape it would get live. */ import type { PaginatedResponse } from "./types.js"; /** Marker fields stamped on every demo response's top-level object. */ export interface DemoStamp { _demo: true; _demoNotice: string; } /** Read/get/list responses. */ export declare const READ_STAMP: DemoStamp; /** Simulated writes (create/update/apply/mark/etc.). */ export declare const WRITE_STAMP: DemoStamp; /** Fiscal / e-invoice / email / payroll actions — NEVER a real submission. */ export declare const FISCAL_STAMP: DemoStamp; /** Empty surfaces (no dedicated fixtures yet) still carry a demo stamp. */ export declare const EMPTY_STAMP: DemoStamp; /** Frozen timestamp so demo responses are deterministic across calls. */ export declare const DEMO_NOW = "2026-07-15T10:00:00.000Z"; /** Test IBAN (ECBS/AEAT example — never a real account). */ export declare const DEMO_TEST_IBAN = "ES9121000418450200051332"; export type DemoPaginated = PaginatedResponse>; /** Wrap a fixture array in a PaginatedResponse. */ export declare function demoPage(data: Record[], params?: { limit?: number; offset?: number; }): DemoPaginated; /** Empty PaginatedResponse for surfaces without dedicated fixtures. */ export declare function demoEmptyPage(params?: { limit?: number; offset?: number; }): DemoPaginated; export declare const demoClients: Record[]; export declare const demoProducts: Record[]; export declare const demoInvoices: Record[]; export declare const demoExpenses: Record[]; export declare const demoQuotes: Record[]; export declare const demoVendors: Record[]; export declare const demoBankAccounts: Record[]; export declare const demoTransactions: Record[]; /** Find a fixture by id, or synthesize a minimal stamped object with that id. */ export declare function findOrStub(collection: Record[], id: string): Record & DemoStamp; /** Deterministic-ish demo id (no network, no clock dependency). */ export declare function demoId(prefix: string): string; /** * Simulate a create/update: echo the input, stamp a fabricated demo id + * timestamps + the WRITE banner. Never persists, never touches the network. */ export declare function simulateWrite(idPrefix: string, input: Record, extra?: Record): Record & DemoStamp; /** Simulate an action on an existing entity (keeps the caller-supplied id). */ export declare function simulateAction(id: string, fields?: Record): Record & DemoStamp; //# sourceMappingURL=demo-fixtures.d.ts.map