import type { Fn, Maybe } from "@thi.ng/api";
import type { IGridLayout } from "@thi.ng/layout";
import type { ComponentOpts } from "../api.js";
import type { IMGUI } from "../gui.js";
export interface RingOpts extends ComponentOpts {
    min: number;
    max: number;
    step: number;
    value: number;
    gap?: number;
    rscale?: number;
    fmt?: Fn<number, string>;
}
export declare const ring: ({ gui, layout, id, min, max, step, value, gap, rscale, label, info, fmt, }: RingOpts) => Maybe<number>;
export interface RingGroupOpts extends Omit<RingOpts, "layout" | "value" | "label" | "info"> {
    layout: IGridLayout<any>;
    /**
     * If true (default), the controls will be arranged horizontally.
     */
    horizontal?: boolean;
    value: number[];
    label: string[];
    info?: string[];
}
export declare const ringGroup: (opts: RingGroupOpts) => number[] | undefined;
export declare const ringRaw: (gui: IMGUI, id: string, x: number, y: number, w: number, h: number, min: number, max: number, step: number, value: number, thetaGap: number, rscale: number, labelX: number, labelY: number, label?: string, fmt?: Fn<number, string>, info?: string) => Maybe<number>;
//# sourceMappingURL=ring.d.ts.map