import { OnDestroy, OnInit } from '@angular/core';
import { DateRangeDayDistanceInput } from '@dereekb/date';
import { DbxTableStore } from '../table.store';
import { MatDateRangeSelectionStrategy, DateRange } from '@angular/material/datepicker';
import { Days, type Maybe } from '@dereekb/util';
import { FormGroup, FormControl } from '@angular/forms';
import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
import * as i0 from "@angular/core";
export declare class DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy<D> implements MatDateRangeSelectionStrategy<D> {
    private readonly _dateAdapter;
    private readonly dbxTableDateRangeDayDistanceInputCellInputComponent;
    selectionFinished(date: D | null): DateRange<D>;
    createPreview(activeDate: D | null): DateRange<D>;
    private _createFiveDayRange;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy<any>>;
}
export interface DbxTableDateRangeDayDistanceInputCellInputComponentConfig {
    /**
     * Button format for the dates
     */
    readonly buttonFormat?: string;
    /**
     * Distance from the start to span.
     */
    readonly daysDistance: Days;
    readonly minDate?: Maybe<Date>;
    readonly maxDate?: Maybe<Date>;
}
export declare const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG: {
    daysDistance: number;
};
export declare const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT = "MMM dd";
/**
 * Cell input for a DateRangeDayDistanceInput value.
 */
export declare class DbxTableDateRangeDayDistanceInputCellInputComponent implements OnInit, OnDestroy {
    readonly tableStore: DbxTableStore<DateRangeDayDistanceInput, unknown, unknown, unknown>;
    private readonly _syncSub;
    private readonly _valueSub;
    private readonly _pickerOpenedSignal;
    private readonly _configSignal;
    readonly range: FormGroup<{
        start: FormControl<Maybe<Date>>;
        end: FormControl<Maybe<Date>>;
    }>;
    readonly pickerOpened$: import("rxjs").Observable<Partial<{
        start: Maybe<Date>;
        end: Maybe<Date>;
    }>>;
    readonly minDateSignal: import("@angular/core").Signal<Date | null>;
    readonly maxDateSignal: import("@angular/core").Signal<Date | null>;
    readonly buttonFormatSignal: import("@angular/core").Signal<string>;
    readonly rangeValue$: import("rxjs").Observable<Partial<{
        start: Maybe<Date>;
        end: Maybe<Date>;
    }>>;
    readonly dateRangeStringSignal: import("@angular/core").Signal<string>;
    ngOnInit(): void;
    ngOnDestroy(): void;
    get daysDistance(): number;
    get config(): Maybe<DbxTableDateRangeDayDistanceInputCellInputComponentConfig>;
    set config(config: Maybe<DbxTableDateRangeDayDistanceInputCellInputComponentConfig>);
    pickerOpened(): void;
    pickerClosed(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableDateRangeDayDistanceInputCellInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxTableDateRangeDayDistanceInputCellInputComponent, "ng-component", never, {}, {}, never, never, true, never>;
}
export declare function dbxTableDateRangeDayDistanceInputCellInput(componentConfig?: DbxTableDateRangeDayDistanceInputCellInputComponentConfig): DbxInjectionComponentConfig<DbxTableDateRangeDayDistanceInputCellInputComponent>;
