import React from 'react';
type SimpleCronType = 'once' | 'interval' | 'intervalBetween' | 'specific';
interface SimpleCronProps {
    cronExpression?: string;
    onChange: (cron: string) => void;
    language: ioBroker.Languages;
}
interface SimpleCronState {
    extended: boolean;
    cron: string;
    mode: SimpleCronType;
    once: {
        time: string;
        date: string;
    };
    interval: {
        period: number;
        unit: string;
        minutes?: number;
        hours?: number;
    };
    intervalBetween: {
        period: number;
        unit: string;
        timeFrom: number;
        timeTo: number;
        weekdays: number[];
        minutes?: number;
        hours?: number;
    };
    specific: {
        time: string;
        weekdays: number[];
    };
}
export declare function cron2state(cron: string, force?: boolean): Partial<SimpleCronState> | null;
export declare class SimpleCron extends React.Component<SimpleCronProps, SimpleCronState> {
    constructor(props: SimpleCronProps);
    static periodArray2text(list: number[], max?: number): string;
    static text2weekdays(text: string): number[];
    static state2cron(state: Partial<SimpleCronState>): string;
    recalcCron(): void;
    getControlsWeekdaysElements(type: 'intervalBetween' | 'specific'): React.JSX.Element;
    getControlsPeriodElements(type: 'interval' | 'intervalBetween'): React.JSX.Element;
    getControlsTime(type: 'once' | 'specific'): React.JSX.Element;
    getControlsDate(): React.JSX.Element;
    getOnceElements(): React.JSX.Element;
    getIntervalElements(): React.JSX.Element;
    getIntervalBetweenElements(): React.JSX.Element[];
    getSpecificTimeElements(): React.JSX.Element[];
    onModeChange(mode: 'once' | 'interval' | 'intervalBetween' | 'specific'): void;
    onChange(cron: string): void;
    render(): React.JSX.Element;
}
export {};
