import type { ChatEvent, ChatMessage, LatLng, Map, Marker, NamedLocation, RadioStation, TravelOption } from './types'; export declare const container: Promise<{ state: any; $refs: { pano0: HTMLIFrameElement; pano1: HTMLIFrameElement; }; props: Record; methods: { changeStop: (stop: number, chosen: number, pano: string, heading: number, location: NamedLocation, options: TravelOption[]) => void; connectWebSocket: () => void; getPanoUrl: () => string; switchFrameOrder: () => void; updateData: (data: { chosen: number; distance: number; endTime: number; heading: number; lat: number; lng: number; location: NamedLocation; options: TravelOption[]; pano: string; station: RadioStation; stop: number; totalUsers: string; voteCounts: { [key: number]: number; }; }) => void; vote: (option: number) => void; }; data: { currFrame: number; currentChosen: number; currentCoords: LatLng; currentHeading: number; currentLocation: NamedLocation; currentMiles: number; currentOptions: TravelOption[]; currentPano: string; currentStation: RadioStation; currentStopNum: number; destroyed: boolean; endTime: number; honkLongSound: Howl; honkSound: Howl; isChangingStop: boolean; loaded: boolean; milesDriven: number; moveSound: Howl; nowPlaying: string; showAlreadyVoted: boolean; showVotedAnim: boolean; totalUsers: string; voteCounts: { [key: number]: number; }; voted: boolean; ws: WebSocket; }; watchers: { locationName: { getter: () => string; value: string; }; }; }>; export declare const wheel: Promise<{ state: any; $refs: Record; props: { currentOptions: TravelOption[]; heading: number; voteCounts: string; }; methods: { onHonkClick: () => void; }; data: { honkSound: Howl; }; watchers: { angle: { getter: () => number; value: number; }; }; }>; export declare const radio: Promise<{ state: any; $refs: { equalizerCanvas: HTMLCanvasElement; volumeKnob: HTMLDivElement; }; props: { station: RadioStation; nowPlaying: string; }; methods: { changeVolume: (mouseEvent: MouseEvent) => void; changeVolumeTouch: (touchEvent: TouchEvent) => void; playCoffeeSound: () => void; resizeCanvas: () => void; seek: () => void; setupAudioAnalyzer: () => void; startVisualization: () => void; startVolumeChange: (mouseEvent: MouseEvent) => void; stopVolumeChange: () => void; switchStation: (station: RadioStation) => void; togglePower: () => void; updateVolumeFromAngle: (angle: number) => void; }; data: { animationFrameId: number; audioAnalyser: AnalyserNode; audioContext: AudioContext; audioSource: MediaElementAudioSourceNode; buttonSound: Howl; coffeeSound: Howl; currentFrequency: number; dataArray: Uint8Array; hideMobile: boolean; isChangingVolume: boolean; isPoweredOn: boolean; knobSound: Howl; radioStream: HTMLAudioElement; staticSound: Howl; stationInfo: string; stationName: string; tuningRotation: number; volume: number; volumeRotation: number; }; watchers: Record; }>; export declare const freshener: Promise<{ state: any; $refs: { freshener: HTMLDivElement; leftString: HTMLDivElement; rightString: HTMLDivElement; }; props: Record; methods: { cleanupPhysics: () => void; endDrag: () => void; handleDrag: (mouseEvent: MouseEvent) => void; initPhysics: () => void; startDrag: (mouseEvent: MouseEvent) => void; }; data: { anchors: unknown[]; animationFrameId: number; clickSound: Howl; engine: Matter.Engine; freshenerBody: Matter.Body; height: number; idleTimeoutId: unknown; isDragging: boolean; leftConstraint: Matter.Constraint; mouse: unknown; mouseConstraint: Matter.Constraint; render: unknown; rightConstraint: Matter.Constraint; runner: Matter.Runner; sleepCounter: number; stringSpacing: number; width: number; xPosition: number; }; watchers: Record; }>; export declare const map: Promise<{ state: any; $refs: Record; props: Record; methods: { createMap: () => Promise; flyTo: (lat: number, lng: number) => void; getInitialData: () => Promise; handleUserInteraction: () => void; setMarkerPosition: (lat: number, lng: number) => void; setMarkerRotation: (rotation: number) => void; toggleAttribution: () => void; toggleExpand: () => void; }; data: { coordinates: [number, number][]; isExpanded: boolean; lastUserInteraction: number; map: Map; mapSound: Howl; marker: Marker; showAttribution: boolean; }; watchers: Record; }>; export declare const chat: Promise<{ state: any; $refs: { chatContainer: HTMLDivElement; }; props: Record; methods: { escapeHTML: (text: string) => string; fetchChatEvents: () => Promise; formatMessage: (text: string) => string; getRandomColor: () => string; getTime: (timestamp: number) => string; handleEvents: (events: ChatEvent[]) => void; openDiscord: () => void; scrollToBottom: () => void; toggleChat: () => void; trimMessage: (text: string) => string; }; data: { hideChat: boolean; messages: ChatMessage[]; nameColors: string[]; userColorMap: { [key: string]: string; }; }; watchers: { messagesToShow: { getter: () => ChatMessage[]; value: ChatMessage[]; }; }; }>; export declare const options: Promise<{ state: any; $refs: Record; props: { chosen: number; heading: number; options: TravelOption[]; stopNum: number; voted: boolean; }; methods: { angleDifference: (angle1: number, angle2: number) => number; getRotation: (option: number) => number; playBlink: () => void; vote: (option: number) => void; }; data: { blinkRate: number; blinkSound: Howl; selectedIndex: number; voteSound: Howl; }; watchers: Record; }>; export declare const odometer: Promise<{ state: any; $refs: Record; props: { miles: number; }; methods: { getDisplayValue: (miles: number) => number; toggleUnit: () => void; updateDisplay: (displayNum: number) => void; }; data: { conversionFactor: number; currentValue: number; digits: string[]; isKilometers: boolean; }; watchers: { currentUnit: { getter: () => number; value: number; }; }; }>; export declare const results: Promise<{ state: any; $refs: Record; props: { endTime: number; heading: number; stopNum: number; voteCounts: { [key: number]: number; }; voteOptions: TravelOption[]; }; methods: { angleDifference: (angle1: number, angle2: number) => number; getRotation: (option: number) => number; setTimeRemaining: () => void; startTween: (voteCounts: { [key: number]: number; }) => void; }; data: { displayedVotes: { [key: number]: number; }; otherOptions: number[]; prevStopNum: number; timeRemaining: number; timeRemainingInterval: number; tweenInterval: number | null; }; watchers: { displayedTotal: { getter: () => number; value: number; }; topFourOptions: { getter: () => { id: number; type: 'direction' | 'skip' | 'honk'; votes: number; index?: number; }[]; value: { id: number; type: 'direction' | 'skip' | 'honk'; votes: number; index?: number; }[]; }; }; }>;