/** Category tag for a charity. */ export declare const VALID_TAGS: readonly ["military", "humanitarian", "animals"]; export type CharityTag = (typeof VALID_TAGS)[number]; /** A charity foundation that can appear in the banner. */ export interface Charity { id: string; name: string; tagline: string; url: string; tags: CharityTag[]; } declare function parseCharity(value: unknown): Charity; export declare const charitySchema: { parse: typeof parseCharity; }; export declare const charitiesSchema: { parse(value: unknown): Charity[]; }; /** Translated UI strings and charity taglines for a single locale. */ export interface LocaleMessages { /** Banner prefix, e.g. "Support Ukraine". */ supportUkraine: string; /** "More…" link text. */ more: string; /** Card donate button text, e.g. "Donate". */ donate: string; /** Refresh button aria-label, e.g. "Show next charity". */ refresh: string; /** Text appended to external links for screen readers, e.g. "(opens in a new tab)". */ opensInNewTab: string; /** Translated taglines keyed by charity id. Missing keys fall back to EN. */ charities: Record; } export interface SupportUkraineBlockOptions { /** Target mount element. If omitted the banner is prepended to document.body. */ element?: HTMLElement; /** Positioning mode: 'shift' pushes content down, 'overlap' floats on top, 'replace' swaps a same-class placeholder. */ mode?: 'shift' | 'overlap' | 'replace'; /** Font size (default '0.875rem'). */ fontSize?: string; /** Category tags to filter by. If omitted all charities are shown. */ tags?: CharityTag[]; /** Avoid repeating charities across page loads using localStorage. */ dontRepeat?: boolean; /** Log a message to the dev console. */ isInConsole?: boolean; /** Show a refresh button that loads the next random charity. */ showRefreshButton?: boolean; /** Auto-refresh interval in milliseconds. 0 = off (default). Set e.g. 15000 for 15 seconds. */ autoRefreshInterval?: number; /** Show a fade animation when the charity changes (respects prefers-reduced-motion). */ showRefreshAnimation?: boolean; /** * Override the auto-detected locale (BCP 47 language tag). * If omitted the locale is detected from `navigator.language`. */ locale?: string; } export {};