import type * as React from 'react'; export type Lang = 'ja' | 'en'; export interface LangSwitchProps { value: Lang; onChange?: (lang: Lang) => void } export declare function LangSwitch(props: LangSwitchProps): React.ReactElement; export interface BilingualProps { initial?: Lang; render: (lang: Lang) => React.ReactNode } export declare function Bilingual(props: BilingualProps): React.ReactElement; export interface ButtonProps { variant?: 'solid' | 'white' | 'outline'; size?: 'md' | 'sm'; href?: string; icon?: React.ReactNode; type?: 'button' | 'submit'; onClick?: () => void; className?: string; children?: React.ReactNode } export declare function Button(props: ButtonProps): React.ReactElement; export interface MoreLinkProps { href?: string; children?: React.ReactNode } export declare function MoreLink(props: MoreLinkProps): React.ReactElement; export interface EyebrowProps { as?: 'h1' | 'h2' | 'h3'; id?: string; label?: string; children?: React.ReactNode } export declare function Eyebrow(props: EyebrowProps): React.ReactElement; export declare function Dots(): React.ReactElement; export interface TagProps { tone?: 'primary' | 'soft' | 'neutral' | 'important' | 'closed'; children?: React.ReactNode } export declare function Tag(props: TagProps): React.ReactElement; export interface NoticeItem { date: string; text: string; href?: string } export interface NoticeBoxProps { lang?: Lang; title?: string; items: NoticeItem[] } export declare function NoticeBox(props: NoticeBoxProps): React.ReactElement; export interface HoursRow { time: string; open: Array<0 | 1> } export interface HoursTableProps { lang?: Lang; rows?: HoursRow[]; note?: string | false } export declare function HoursTable(props: HoursTableProps): React.ReactElement; export interface DeptCardProps { lang?: Lang; title: string; iconSrc?: string; href?: string | false; linkText?: string; children?: React.ReactNode } export declare function DeptCard(props: DeptCardProps): React.ReactElement; export interface NewsItem { date: string; title: string; category?: string; important?: boolean; href?: string } export interface NewsListProps { lang?: Lang; items: NewsItem[] } export declare function NewsList(props: NewsListProps): React.ReactElement; export interface SiteHeaderProps { lang?: Lang; onLangChange?: (lang: Lang) => void; logoSrc: string; logoReverseSrc?: string; tagline?: string; nav?: string[] } export declare function SiteHeader(props: SiteHeaderProps): React.ReactElement; export interface BusinessCardProps { lang?: Lang; side?: 'front' | 'back'; logoSrc?: string; logoReverseSrc?: string; name?: string; nameEn?: string; role?: string; email?: string; url?: string } export declare function BusinessCard(props: BusinessCardProps): React.ReactElement; export interface ClinicCardProps { lang?: Lang; symbolSrc: string; patientNo?: string; patientName?: string } export declare function ClinicCard(props: ClinicCardProps): React.ReactElement; export interface SignageProps { ja: string; en?: string; number?: number | string; arrow?: string } export declare function Signage(props: SignageProps): React.ReactElement; export interface SocialPostProps { lang?: Lang; logoSrc: string; title: React.ReactNode; category?: string; important?: boolean; facts?: React.ReactNode[]; tone?: 'primary' | 'sun' | 'leaf'; format?: 'square' | 'story' | 'landscape'; cta?: string; imageSrc?: string; imageAlt?: string } export declare function SocialPost(props: SocialPostProps): React.ReactElement; export interface NoticePosterProps { lang?: Lang; logoSrc: string; title: React.ReactNode; category?: string; important?: boolean; lead?: string; facts?: Array<[string, string]>; en?: string } export declare function NoticePoster(props: NoticePosterProps): React.ReactElement; declare global { interface Window { FFC: { Button: typeof Button; MoreLink: typeof MoreLink; Eyebrow: typeof Eyebrow; Dots: typeof Dots; Tag: typeof Tag; LangSwitch: typeof LangSwitch; Bilingual: typeof Bilingual; strings: Record>; NoticeBox: typeof NoticeBox; HoursTable: typeof HoursTable; DeptCard: typeof DeptCard; NewsList: typeof NewsList; SiteHeader: typeof SiteHeader; BusinessCard: typeof BusinessCard; ClinicCard: typeof ClinicCard; Signage: typeof Signage; SocialPost: typeof SocialPost; NoticePoster: typeof NoticePoster } } }