import { Component, TemplateFunction, ScopeBase } from "@ribajs/core";
interface Scope extends ScopeBase {
    time: string;
    countdownYears: boolean;
    countdownDays: boolean;
    countdownHours: boolean;
    countdownMinutes: boolean;
    countdownSeconds: boolean;
    countdownRunning: boolean;
    remainingYears: number;
    remainingDays: number;
    remainingHours: number;
    remainingMinutes: number;
    remainingSeconds: number;
}
export declare class TimerComponent extends Component {
    static tagName: string;
    protected autobind: boolean;
    static get observedAttributes(): string[];
    protected requiredAttributes(): string[];
    scope: Scope;
    private updateIntervalId?;
    constructor();
    protected connectedCallback(): void;
    protected init(observedAttributes: string[]): Promise<void>;
    protected beforeBind(): Promise<any>;
    protected afterBind(): Promise<void>;
    protected updateCountdown(): void;
    protected resetCountdown(): void;
    protected getRemainingSeconds(): number;
    protected isYearsLastUnit(): boolean;
    protected isDaysLastUnit(): boolean;
    protected isHoursLastUnit(): boolean;
    protected isMinutesLastUnit(): boolean;
    protected startCountdownInterval(): void;
    protected cancelCountdownInterval(): void;
    protected disconnectedCallback(): void;
    protected template(): ReturnType<TemplateFunction>;
}
export {};
