import { Pattern, IPatternSettings, IPatternPrivate } from "./Pattern";
import { Percent } from "../../util/Percent";
export interface IStarPatternSettings extends IPatternSettings {
    /**
     * Gap between stars, in pixels.
     *
     * @default 6
     */
    gap?: number;
    /**
     * Outer radius of the star, in pixels.
     *
     * @default 5
     */
    radius?: number;
    /**
     * Inner radius of the star. Either an absolute pixel value or a percent of
     * `radius`.
     *
     * @default 50%
     */
    innerRadius?: number | Percent;
    /**
     * Number of spikes.
     *
     * @default 5
     */
    spikes?: number;
    /**
     * If set to `true`, will place every second star, creating a checkered
     * pattern.
     *
     * @default false
     */
    checkered?: boolean;
    /**
     * Center stars in their grid cell.
     *
     * @default true
     */
    centered?: boolean;
    /**
     * If set to `true`, `rotation` rotates each star around its own center while
     * the grid/tile stays axis-aligned, instead of rotating the whole pattern.
     * This tiles seamlessly (a small `width`/`height` is enough) and is much
     * faster than rotating the whole pattern on large tiles.
     *
     * @default false
     */
    rotateShapes?: boolean;
}
export interface IStarPatternPrivate extends IPatternPrivate {
}
/**
 * Star pattern.
 *
 * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more info
 */
export declare class StarPattern extends Pattern {
    _settings: IStarPatternSettings;
    _privateSettings: IStarPatternPrivate;
    static className: string;
    static classNames: Array<string>;
    _beforeChanged(): void;
    /**
     * A star pattern's tile is only a repeat unit — the grid repeats every cell —
     * so an oversized `width`/`height` just wastes memory and draw time for an
     * identical result. Normalise it to a single cell (2x2 cells when
     * `checkered`). Skipped for a whole-pattern `rotation` (which isn't periodic
     * on an axis-aligned tile — use `rotateShapes` for that) and for non-`repeat`
     * repetitions.
     * @ignore
     */
    protected _optimizeTileSize(): void;
    protected _draw(): void;
    protected _drawStar(cx: number, cy: number, radius: number, innerRadius: number, spikes: number, shCos: number, shSin: number): void;
}
//# sourceMappingURL=StarPattern.d.ts.map