import { ElementRef, EventEmitter, OnChanges, OnDestroy } from '@angular/core'; import * as i0 from "@angular/core"; /** A single navigation link in the footer. */ export interface FooterLink { /** Text displayed in the button. */ label: string; /** Identifier emitted when the button is clicked. */ id: string; } /** * Footer — bottom bar from the ComPsych Design System. * * Displays a copyright notice and an optional list of navigation links. * On initialisation the component measures the natural widths of the copyright * and links to establish a breakpoint. On every window resize it compares the * host width against that breakpoint and switches between a row layout * (copyright left, links right) and a stacked, centered column layout. */ export declare class FooterComponent implements OnChanges, OnDestroy { private readonly el; /** * Navigation links rendered alongside the copyright notice. * The layout switches automatically based on their combined natural width. */ links: FooterLink[]; /** Copyright text displayed in the footer. */ copyright: string; /** Emits the id of the link button that was clicked. */ linkClick: EventEmitter; /** * Reflects whether the row layout is active. * Signal so OnPush picks up DOM-driven updates from async callbacks. */ protected readonly isRow: import("@angular/core").WritableSignal; /** Combined natural width of copyright + links + gap + padding. */ private breakpoint; private readonly widthObserver; constructor(el: ElementRef); ngOnDestroy(): void; ngOnChanges(): void; protected onResize(): void; /** * Measures the natural widths of the copyright and links elements once and * stores their sum (plus padding and gap) as the layout breakpoint. */ private measureBreakpoint; /** Switches to the row layout when the host is wide enough for both children. */ private checkLayout; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }