import { DateBean, KosTimeOptions, TimeBean } from './types';
import { IKosDataModel, IKosModelLogger, KosContextLogger, KosCreationContext, PublicModelInterface } from '../../../core';

export declare const MODEL_TYPE = "kos-time-model";
export type KosTimeModel = PublicModelInterface<KosTimeModelImpl>;
export declare class KosTimeModelImpl implements IKosModelLogger, IKosDataModel {
    id: string;
    logger: KosContextLogger;
    timezone: string;
    constructor(modelId: string, _options: KosTimeOptions, context: KosCreationContext);
    /**
     * Updates the system clock to the provided time.
     *
     * @param time - The time to set the system time to
     */
    updateSystemTime(time: TimeBean): Promise<void>;
    /**
     * Updates the system clock to the provided date.
     *
     * @param date - The date to set the system date to
     */
    updateSystemDate(date: DateBean): Promise<void>;
    /**
     * Updates the system clock to the provided timezone.
     * @param timezone - The timezone to set the system timezone to
     */
    updateSystemTimezone(timezone: string): Promise<void>;
    handleTimeChange(): void;
    handleDayChange(): void;
    handleTimeZoneChange(): Promise<void>;
    init(): Promise<void>;
    private retrieveTimezone;
    setTimezone(tz: string): void;
    load(): Promise<void>;
}
//# sourceMappingURL=kos-time-model.d.ts.map