import { SbbElement, type SbbElementType } from '@sbb-esta/lyne-elements/core.js'; import { type CSSResultGroup, type PropertyValues, type TemplateResult } from 'lit'; import type { ITripItem, Notice, PtSituation } from '../core.ts'; /** HimCus interface for mapped icon name and text */ export interface HimCus { name: string; text?: string | null; } /** Boarding icon interface for mapped icon name and text */ export interface Boarding { name: string; text: string; } export interface Price { price?: string; text?: string; isDiscount?: boolean; } export declare const renderIconProduct: (icon: string, name: string) => TemplateResult; export declare const renderStringProduct: (vehicleName: string, line?: string | null) => TemplateResult; export declare const sortSituation: (situations: PtSituation[]) => PtSituation[]; export declare const getHimIcon: (situation: PtSituation) => HimCus; export declare const getCus: (trip: ITripItem, currentLanguage: string) => HimCus; export declare const filterNotices: (notices: Notice[]) => Notice[]; export declare const handleNotices: (notices: Notice[]) => Notice[]; /** * It displays information about the trip, acting as a container for all the `sbb-timetable-*` components. * */ export declare class SbbTimetableRowElement extends SbbElement { static readonly elementName: string; static elementDependencies: SbbElementType[]; static styles: CSSResultGroup; /** The trip Prop. */ accessor trip: ITripItem; /** The price Prop, which consists of the data for the badge. */ accessor price: Price; /** The label for the badge. Can be used to override the content of the badge. */ accessor badgeLabel: string; /** Forces the badge color. If not set, the color is derived from `price.isDiscount`. */ accessor badgeColor: 'light' | 'dark' | null; /** This will be forwarded to the sbb-pearl-chain component - if true the position won't be animated. */ accessor disableAnimation: boolean; /** This will be forwarded to the notices section */ accessor boarding: Boarding; /** * The loading state - * when this is true it will be render skeleton with an idling animation */ accessor loadingTrip: boolean; /** * The Footpath attribute for rendering different icons * true: render a11y-icon * false: render walk-icon * default: render walk-icon */ accessor a11yFootpath: boolean; /** * The loading state - * when this is true it will be render skeleton with an idling animation */ accessor loadingPrice: boolean; /** * Hidden label for the card action. It overrides the automatically generated accessibility text for the component. Use this prop to provide custom accessibility information for the component. */ accessor cardActionLabel: string; /** This will be forwarded to the sbb-card component as aria-expanded. */ accessor accessibilityExpanded: boolean; /** When this prop is true the sbb-card will be in the active state. */ accessor active: boolean; /** * A configured date which acts as the current date instead of the real current date. * Only recommended for testing purposes. */ set now(value: Date | null); get now(): Date; private _now; private _language; protected willUpdate(changedProperties: PropertyValues): void; /** The skeleton render function for the loading state */ private _renderSkeleton; private _getRideLegs; private _getQuayTypeStrings; /** map Quay */ private _renderQuayType; private _handleHimCus; private _getAccessibilityText; protected render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { 'sbb-timetable-row': SbbTimetableRowElement; } }