export interface Company { orgNumber: string; companyName: string; legalForm: string; registrationDate: string; businessDescription?: string; sniCodes: string[]; address?: { street: string; postalCode: string; city: string; }; status: "active" | "inactive" | "deregistered"; symbol?: string; isin?: string; market?: string; currency?: string; sector?: string; } export interface AnnualFinancials { orgNumber: string; period: string; revenue?: number; operatingProfit?: number; netIncome?: number; profitAfterFinancial?: number; totalAssets?: number; fixedAssets?: number; currentAssets?: number; equity?: number; totalLiabilities?: number; employees?: number; /** * ISO 4217 currency for the amount columns. Optional for backward * compat - when undefined, widgets fall back to a plain locale * number without a currency symbol. Phase 3 cross-stack rename of * `revenue_sek` -> `(revenue, currency)` populates this on every * row served by the API. */ currency?: string; } export interface QuarterlyFinancials { orgNumber: string; companyName: string; period: string; revenue?: number; operatingProfit?: number; ebitda?: number; netIncome?: number; totalAssets?: number; equity?: number; earningsPerShare?: number; operatingCashflow?: number; unit: "SEK" | "TSEK" | "MSEK"; currency: string; } export interface ChangeEvent { orgNumber: string; tableName: string; changeType: "ADDED" | "MODIFIED" | "REMOVED"; snapshotDate: string; changedFields: string[]; before: Record; after: Record; } export interface PeerGroup { sniCode: string; sniLabel?: string; companies: Array; } export interface PriceData { current: number; change: number; changePercent: number; high: number; low: number; open: number; previousClose: number; volume: number; turnover: number; currency: string; timestamp: string; } export interface OrderBookEntry { price: number; quantity: number; } export interface OrderBookData { bids: OrderBookEntry[]; asks: OrderBookEntry[]; spread: number; spreadPercent: number; } export interface TradeEntry { time: string; price: number; quantity: number; buyer?: string; seller?: string; } export interface KeyStatsData { marketCap?: number; peRatio?: number; pbRatio?: number; dividendYield?: number; dividendPerShare?: number; eps?: number; beta?: number; week52High?: number; week52Low?: number; avgVolume30d?: number; sharesOutstanding?: number; sector?: string; currency: string; } export interface CorporateEvent { date: string; type: "report" | "dividend" | "agm" | "other"; title: string; description?: string; isPast: boolean; } export interface OHLCData { date: string; open: number; high: number; low: number; close: number; volume?: number; } /** Render-mode drives how widgets render under the current * publishable-key state. * - `active` — key present, server hasn't rejected any request * - `preview` — no key (marketing demo / contributor storybook) * - `inactive` — server returned 401/402 (subscription paused or * key revoked) — all widgets tombstone until reload */ export type RenderMode = "active" | "preview" | "inactive"; export interface RegnaConfig { publishableKey?: string; baseUrl?: string; theme?: "light" | "dark"; } export interface ApiError { code: string; message: string; } export interface AsyncState { data: T | null; loading: boolean; error: ApiError | null; } //# sourceMappingURL=index.d.ts.map