export declare const TESTID_ROOT = "kld"; /** Default static prefixes for the two control families that have no preset scope. */ export declare const TRANSFORM_TESTID_PREFIX = "kld.transform"; export declare const MASK_TESTID_PREFIX = "kld.mask"; /** * Normalize a display string to a stable id segment: lowercase, spaces and * underscores to `-`, drop anything outside `[a-z0-9-]`, collapse repeats, trim. */ export declare function slug(s: string): string; /** * The scope a ControlForm's fields hang off: `kld..`, or * `kld.` when rendered standalone (no Tuner provides a preset). */ export declare function controlScope(presetId: string | null, layerId: string): string; /** One field's id within its form scope: `.`. */ export declare function fieldTestId(scope: string, uniform: string): string; /** A rotation button: `.rotate-`. */ export declare function rotateTestId(prefix: string, deg: number): string; /** A flip toggle: `.flip-`. */ export declare function flipTestId(prefix: string, axis: 'x' | 'y'): string; /** A family tab: `kld.family.`. */ export declare function familyTestId(family: string): string; /** * A category menu item, qualified by its family so the same label under two * families does not collide: `kld.category..`. */ export declare function categoryTestId(family: string, category: string): string; /** A preset tile: `kld.preset.` (id is the book key, already a stable token). */ export declare function presetTileTestId(id: string): string; //# sourceMappingURL=test-id.d.ts.map