import * as i0 from '@angular/core';
import { OnInit, OnDestroy } from '@angular/core';
import * as i1 from '@c8y/ngx-components';
import { OptionsService, DateFormatService } from '@c8y/ngx-components';
import * as i2 from '@angular/forms';
import { ControlValueAccessor, Validator, FormGroup, ValidationErrors, FormBuilder } from '@angular/forms';
import * as i3 from 'ngx-bootstrap/datepicker';
import * as i4 from 'ngx-bootstrap/timepicker';

interface OperationSchedule {
    delayInSeconds: number;
    scheduledDate: Date;
}

declare class OperationSchedulerComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {
    private formBuilder;
    private options;
    private dateFormatService;
    set _minutesAhead(minutes: number);
    placeholder: string;
    fgOperationScheduler: FormGroup;
    minDate: Date;
    minDelay: number;
    maxDelay: number;
    delayErrors: ValidationErrors;
    pickerErrors: ValidationErrors;
    dateInputFormat: string;
    private readonly DELAY_SECONDS_DEFAULT;
    private readonly MIN_DELAY_SECONDS_DEFAULT;
    private readonly MAX_DELAY_SECONDS_DEFAULT;
    private readonly MINUTES_AHEAD_DEFAULT;
    private isDelayInSeconds;
    private minutesAhead;
    private readonly DELAY_KEY_CATEGORY;
    private readonly MAX_DELAY_KEY_NAME;
    private readonly MIN_DELAY_KEY_NAME;
    private currentUnit;
    private delayInSeconds;
    private initialDate;
    private subscription;
    private onChange;
    private onTouched;
    private onValidatorChanged;
    constructor(formBuilder: FormBuilder, options: OptionsService, dateFormatService: DateFormatService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    writeValue(value: OperationSchedule): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    validate(): ValidationErrors;
    registerOnValidatorChange(fn: any): void;
    markAsTouched(): void;
    convertDelayHandler(unit: string): void;
    emitData(data: {
        delayInSeconds: number;
        picker: Date;
        time?: Date;
        delay?: number;
    }): void;
    private updateDelayValidation;
    private convertDelay;
    private combineDateAndTime;
    private dateValidation;
    private timeValidation;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationSchedulerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OperationSchedulerComponent, "c8y-operation-scheduler", never, { "_minutesAhead": { "alias": "minutesAhead"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * This module provides components for scheduling bulk operations.
 */
declare class BulkOperationSchedulerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<BulkOperationSchedulerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<BulkOperationSchedulerModule, never, [typeof i1.CoreModule, typeof i2.ReactiveFormsModule, typeof i3.BsDatepickerModule, typeof i4.TimepickerModule, typeof OperationSchedulerComponent], [typeof OperationSchedulerComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<BulkOperationSchedulerModule>;
}

export { BulkOperationSchedulerModule, OperationSchedulerComponent };
export type { OperationSchedule };
//# sourceMappingURL=index.d.ts.map
