import { IFractal, TBounds, TPointCb } from "./types";
export interface ILTimeParams {
    axiom: string;
    rules: Record<string, string>;
    iterations: number;
    distance: number;
    angle: number;
    lengthScale?: number;
}
export type TLTimePoint = [
    x: number,
    y: number,
    depth: number,
    meta: {
        paintable: boolean;
    }
];
export declare class LTimeSystem implements IFractal {
    private state;
    private stack;
    private instructions;
    private distance;
    private readonly angle;
    private readonly lengthScale;
    readonly points: TLTimePoint[];
    bounds: TBounds;
    constructor(params: ILTimeParams);
    processLSystem(times: number, axiom: string, rules: Record<string, string>): void;
    run(fn?: TPointCb): void;
    private move;
    forward(step: number, fn: TPointCb): void;
    backward(step: number, fn: TPointCb): void;
    right(): void;
    left(): void;
}
