import { PluginInterface, TimeFrame } from '@debut/types';
export declare const enum TimeMode {
    'Summer' = "Summer",
    'Winter' = "Winter"
}
export interface SessionPluginOptions {
    interval: TimeFrame;
    timezone?: string;
    from?: string;
    to?: string;
}
export interface SessionPluginExtends {
    onDayEnded(): void;
}
interface Methods {
    createSessionValidator: typeof createSessionValidator;
}
export interface SessionAPI {
    session: Methods;
}
export interface SessionInterface extends PluginInterface {
    name: 'stats';
    api: Methods;
}
export declare function sessionPlugin(options: SessionPluginOptions, onDayEnd?: (...args: unknown[]) => void): PluginInterface;
export type SessionValidator = ReturnType<typeof createSessionFilter>;
export type SessionValidatorResult = {
    inSession: boolean;
    dayChanged: boolean;
};
/**
 * Метод создания валидатора из человеко читаемых дат
 */
export declare function createSessionValidator(interval: TimeFrame, timezone: string, from?: string, to?: string): (stamp: number) => SessionValidatorResult;
/**
 * Метод создания валидатора сессионного окна по дате, с переходом на зимнее и летнее время
 */
declare function createSessionFilter(intervalMs: number, timezone: string, start: number, end: number): (stamp: number) => SessionValidatorResult;
export {};
