export declare type OpeningHour = number;
export interface OpeningHoursInterval {
    open: OpeningHour;
    close: OpeningHour;
}
export declare type OpeningHoursDay = OpeningHoursInterval[];
export interface OpeningHoursWeek {
    1: OpeningHoursDay;
    2: OpeningHoursDay;
    3: OpeningHoursDay;
    4: OpeningHoursDay;
    5: OpeningHoursDay;
    6: OpeningHoursDay;
    7: OpeningHoursDay;
}
export declare enum OpeningHoursStatus {
    CLOSED = 0,
    OPEN = 1
}
export interface OpeningHoursResult {
    currentStatus: OpeningHoursStatus;
    nextStatus: OpeningHoursStatus;
    nextChangeDay: number | null;
    nextChangeTime: OpeningHour;
    nextChangeIsToday: boolean;
    nextChangeIsTomorrow: boolean;
}
export interface OpeningHoursFormattedRow {
    dayFrom: number;
    dayTo: number;
    hours: string;
    isSingleDay: boolean;
    isCurrent: boolean;
    isOpen: boolean;
}
export declare type OpeningHoursFormatted = OpeningHoursFormattedRow[];
export declare function parseWeek(input: {
    [key: number]: string;
}, returnNullIfEmpty?: boolean): OpeningHoursWeek | null;
export declare function parseDay(input: string): OpeningHoursDay;
export declare function parseInterval(input: string): OpeningHoursInterval | null;
export declare function parseHour(input: string): OpeningHour;
export declare function formatHour(input: OpeningHour): string;
export declare function formatInterval(input: OpeningHoursInterval): string;
export declare function formatDay(input: OpeningHoursDay): string;
export declare function formatWeek(input: OpeningHoursWeek, now?: Date | null): OpeningHoursFormatted;
export declare function processHours(hours: OpeningHoursWeek, now?: Date | null): OpeningHoursResult;
