import type { MdyWidgetKind } from "./catalog.js"; /** What an affordance is for, which decides whether it needs a hit target. */ export type MdyAffordanceRole = /** Operable: it opens something, or it steps a value. Needs a target a finger can hit. */ "control" /** Decorative: it says the field opens, and the field itself is what you press. */ | "indicator"; export interface MdyAffordance { readonly part: string; readonly role: MdyAffordanceRole; } /** * The trailing affordances a kind draws, in the order the catalogue declares them. * * Empty for a kind that has none — a plain text field ends at its own edge. */ export declare function trailingAffordances(kind: MdyWidgetKind): readonly MdyAffordance[]; /** Every kind that draws at least one trailing affordance. */ export declare function kindsWithAffordances(): readonly MdyWidgetKind[]; /** * The classes a renderer or a theme selects an affordance by, across every kind. * * A theme needs one selector list to give them all the same geometry, and building it from the * catalogue is what stops that list going stale the day a kind gains a button. */ export declare function affordanceClasses(role?: MdyAffordanceRole): readonly string[];