import { Color, FindColorByMode, Mode, OverridesObject, TakeColorChannels } from "../common.js"; import { MapFn } from "../map.js"; type ColorPosition = [Color | string, number]; type Position = number; type PositionFn = (P: number) => number; type ColorsParameter = Array; type Interpolator = (t: number) => FindColorByMode; type InterpolateOverridesWithFixupFnsForChannels = { [P in keyof TakeColorChannels]: { fixup?: (arr: number[]) => number[]; }; }; type InterpolateOverridesWithUseFnsForChannels = { [P in keyof TakeColorChannels]: { use?: Interpolator; }; }; type InterpolateOverridesFunction = (values: number[]) => number; type InterpolateOverridesParameter = | InterpolateOverridesWithFixupFnsForChannels | InterpolateOverridesFunction | OverridesObject | InterpolateOverridesWithUseFnsForChannels; declare function interpolate( colors: ColorsParameter, mode?: M, overrides?: InterpolateOverridesParameter, ): Interpolator; declare function interpolateWith( premap: MapFn, postmap?: MapFn, ): (colors: ColorsParameter, mode?: M, overrides?: InterpolateOverridesParameter) => Interpolator; declare function interpolateWithPremultipliedAlpha( colors: ColorsParameter, mode?: M, overrides?: InterpolateOverridesParameter, ): Interpolator; export { interpolate, interpolateWith, interpolateWithPremultipliedAlpha };