/**
 * gradient — builder for CSS gradient strings.
 *
 * Pre-set variants ship as CSS variables (`--ods-gradient-running-accent`,
 * etc.) for the common case. This helper covers everything else — custom
 * angles, stops, and tokens — without callers having to hand-string
 * `conic-gradient(...)` and remember the syntax.
 *
 * Color shorthand: a stop's `color` can be either a full CSS color
 * (`var(--ods-accent)`, `#3b82f6`, `rgba(...)`, `transparent`) or a
 * dash-cased v1 token slug (`"accent"`, `"status-success-bg"`). Slugs are
 * auto-expanded to `var(--ods-<slug>)`.
 *
 * @example
 * gradient.conic({
 *   from: "0deg",
 *   stops: [
 *     { color: "transparent", at: "0%" },
 *     { color: "accent",      at: "25%" },
 *     { color: "transparent", at: "50%" },
 *   ],
 * });
 * // → "conic-gradient(from 0deg, transparent 0%, var(--ods-accent) 25%, transparent 50%)"
 */
export type GradientStop = {
    /** CSS color OR a v1 token slug (auto-expanded to var(--ods-<slug>)) */
    color: string;
    /** Optional position (e.g. "0%", "25%", "1rem"). Omit to let CSS auto-distribute. */
    at?: string;
};
/**
 * Expand a stop color. If it's already a full CSS color (var(), #hex,
 * rgb/rgba, hsl/hsla, oklch, or a CSS-wide keyword) it passes through.
 * If it's a dash-cased slug like "accent" or "status-success-bg", it's
 * wrapped as `var(--ods-<slug>)`.
 */
export declare function expandGradientColor(value: string): string;
export declare const gradient: {
    /**
     * Build a `conic-gradient(...)` string.
     *
     * @param opts.from  — starting angle (e.g. "0deg", "var(--my-angle)"). Optional.
     * @param opts.at    — center position (e.g. "50% 50%", "center"). Optional.
     * @param opts.stops — color stops, in sweep order.
     */
    readonly conic: (opts: {
        from?: string;
        at?: string;
        stops: readonly GradientStop[];
    }) => string;
    /**
     * Build a `linear-gradient(...)` string.
     *
     * @param opts.direction — angle or keyword (e.g. "180deg", "to right").
     *                         Defaults to `180deg` (top → bottom) per CSS spec.
     * @param opts.stops     — color stops, in direction order.
     */
    readonly linear: (opts: {
        direction?: string;
        stops: readonly GradientStop[];
    }) => string;
    /**
     * Build a `radial-gradient(...)` string.
     *
     * @param opts.shape — shape + size (e.g. "circle", "ellipse 200px 100px",
     *                     "circle at 50% 0", "closest-side"). Optional.
     * @param opts.at    — center position (e.g. "center", "top right"). Optional.
     *                     Note: if `shape` already encodes `at ...`, omit this.
     * @param opts.stops — color stops, from center outward.
     */
    readonly radial: (opts: {
        shape?: string;
        at?: string;
        stops: readonly GradientStop[];
    }) => string;
};
//# sourceMappingURL=gradients.d.ts.map