import * as i0 from '@angular/core';
import { OutputEmitterRef, TemplateRef, InputSignal, Signal } from '@angular/core';

interface CountDown {
    isActive: boolean;
    isCompleted: boolean;
    speed: number;
    remainingTime: number;
}

declare class CountdownService {
    private counter;
    private isActive;
    private interval;
    constructor();
    start: () => void;
    stop: () => void;
    setRemainingTime: (remainingTime: number) => void;
    resetCounter: (remainingTime: number) => void;
    getCounter: () => i0.Signal<CountDown>;
    private tick;
    static ɵfac: i0.ɵɵFactoryDeclaration<CountdownService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CountdownService>;
}

declare class PathOptions {
    path: string;
    length: number;
    constructor(path?: string, length?: number);
}

interface CountDownData {
    currentColor: string;
    offset: number;
}

type RotationType = 'clockwise' | 'counterclockwise';

declare class CircleCountdownComponent {
    readonly countdownCompleted: OutputEmitterRef<void>;
    counterTemplate: TemplateRef<any> | null;
    duration: InputSignal<number>;
    color: InputSignal<string>;
    colors: InputSignal<string[]>;
    colorsTime: InputSignal<number[]>;
    strokeWidth: InputSignal<number>;
    size: InputSignal<number>;
    rotation: InputSignal<RotationType>;
    protected countdownService: CountdownService;
    pathOptions: Signal<PathOptions>;
    countDown: Signal<CountDown>;
    countDownData: Signal<CountDownData>;
    isCompleted: Signal<boolean>;
    constructor();
    start(): void;
    pause(): void;
    reload(): void;
    private getCountDownData;
    private getStrokeColor;
    static ɵfac: i0.ɵɵFactoryDeclaration<CircleCountdownComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CircleCountdownComponent, "ng-circle-countdown", never, { "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "colors": { "alias": "colors"; "required": false; "isSignal": true; }; "colorsTime": { "alias": "colorsTime"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; }, { "countdownCompleted": "countdownCompleted"; }, ["counterTemplate"], never, true, never>;
}

export { CircleCountdownComponent, CountdownService };
export type { CountDown, RotationType };
//# sourceMappingURL=ng-circle-countdown.d.ts.map
