import type { App } from '../App'; import type { Node } from '../Node'; import type { Group } from '../shapes/Group'; import type { ThemePalette } from './themes'; export declare function clamp(v: number, min: number, max: number): number; export declare function num(props: Record, key: string, fallback: number): number; export declare function str(props: Record, key: string, fallback?: string): string; export declare function bool(props: Record, key: string, fallback?: boolean): boolean; export declare function getState(node: Node): Record; export declare function setState(node: Node, patch: Record): void; export declare function bindApp(node: Node, app: App): void; export declare function createAutoGroup(app: App, type: string, props: Record, autoPart?: string, extra?: Record): Group; export type RefreshFn = (value: number) => void; export type BoolRefreshFn = (value: boolean) => void; export declare function setRefresh(node: Node, fn: RefreshFn): void; export declare function setBoolRefresh(node: Node, fn: BoolRefreshFn): void; export declare function needleAngle(value: number, max: number): number; export declare function animateAutoValue(node: Node, key: string, toValue: number, duration?: number): void; export declare function setAutoValue(node: Node, key: string, value: number): void; export declare function setParts(node: Node, parts: Record): void; export declare function getParts(node: Node): Record; export declare function automotiveToJSON(node: Node): import('../types').SceneJSON; export declare function applyThemeToNode(node: Node, palette: ThemePalette): void;