import { Part } from '../../part.js';
import { PartComponent } from '../../component.js';
declare type WaveType = 'sine' | 'square' | 'sawtooth' | 'triangle';
declare class OscillatorComponent extends PartComponent {
    x: number;
    delay: number;
    speed: number;
    wave: WaveType;
}
export declare class OscillatorPart extends Part {
    core: OscillatorComponent;
    private timeout;
    static transformLegacy(app: any): void;
    constructor();
    onStart(): void;
    onStop(): void;
    _updateValue(): void;
    /**
     * Stop the oscillation. This will cancel the resursive timeout loop
     */
    _stopOscillating(): void;
    _getStep(): number;
    speed: number;
    delay: number;
    readonly value: number;
    wave: WaveType;
    /**
     * Clamps x between 0 and 100
     * It mutates core.x but does not invalidate
     */
    _checkBounds(): void;
    getValueAt(x: number): number;
}
export {};
