import { GdsFormControlElement } from '../form/form-control';
declare class Datepicker extends GdsFormControlElement<Date> {
    #private;
    static styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
    get type(): string;
    /**
     * The Date value of the datepicker. This can be set to undefined to clear the datepicker.
     * This can be a string if set via the value attribute in markup, or via the setAttribute DOM API.
     */
    get value(): Date | undefined;
    set value(value: Date | undefined);
    /**
     * The minimum date that can be selected.
     */
    min: Date;
    /**
     * The maximum date that can be selected.
     */
    max: Date;
    /**
     * Controls whether the datepicker popover is open.
     */
    open: boolean;
    /**
     * The supporting text displayed between the label and the field itself
     */
    supportingText: string;
    /**
     * Whether to use the small variant of the datepicker field.
     */
    size: 'large' | 'small';
    /**
     * Hides the header and the footer, while still keeping the accessible label
     *
     * Always set the `label` attribute, and if you need to hide it, add this attribute and keep `label` set.
     */
    plain: boolean;
    /**
     * Whether to show a column of week numbers in the calendar.
     */
    showWeekNumbers: boolean;
    /**
     * Whether to hide the label above the input field.
     */
    hideLabel: boolean;
    /**
     * Whether the Clear button is shown under the calendar.
     */
    clearable: boolean;
    /**
     * Whether to hide the Today button under the calendar.
     */
    hideTodayButton: boolean;
    /**
     * Controls the time component of dates selected in the calendar popover or spinbuttons in the field.
     *
     * The time will be set in UTC.
     */
    get utcHours(): number;
    set utcHours(value: number);
    /**
     * The date format to use. Accepts a string with the characters `y`, `m` and `d` in any order, separated by a delimiter.
     * For example, `y-m-d` or `d/m/y`. All three characters must be present.
     *
     * This will determine the structure of the input field.
     *
     * Defaults to `y-m-d`.
     */
    get dateformat(): string;
    set dateformat(dateformat: string);
    /**
     * Whether to disable weekends in the calendar.
     */
    disabledWeekends: boolean;
    /**
     * An array of dates that should be disabled in the calendar.
     */
    disabledDates?: Date[];
    /**
     * Whether the supporting text should be displayed or not.
     */
    showExtendedSupportingText: boolean;
    /**
     * Get the currently focused date in the calendar popover. If no date is focused, or the calendar popover
     * is closed, the value will be undefined.
     */
    getFocusedDate(): Promise<Date | undefined>;
    /**
     * Get a string representation of the currently displayed value in the input field. The formatting will match the dateformat attribute.
     */
    get displayValue(): string;
    /**
     * A reference to the calendar button element inside the shadow root.
     * Inteded for use in integration tests.
     */
    test_calendarButton: Promise<HTMLButtonElement>;
    /**
     * A reference to the clear button element inside the shadow root.
     * Inteded for use in integration tests.
     */
    test_clearButton: HTMLButtonElement;
    /**
     * A reference to the today button element inside the shadow root.
     * Inteded for use in integration tests.
     */
    test_todayButton: HTMLButtonElement;
    /**
     * A reference to a date cell element (<td>) inside the shadow root of the calendar primitive.
     * Intended for use in integration tests.
     */
    test_getDateCell(dayNumber: number): Promise<Element | null | undefined>;
    private _focusedMonth;
    private _focusedYear;
    private _dateFormatLayout;
    private _elCalendar;
    private _elTrigger;
    private _elFieldAsync;
    private _elSpinners;
    private _elField;
    constructor();
    connectedCallback(): void;
    focus(options?: FocusOptions): void;
    render(): any;
    protected _getValidityAnchor(): HTMLElement;
    private _handleValueChange;
    private _handleOpenChange;
}
declare const GdsDatepicker_base: (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").SizeXProps) & (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").MarginProps) & (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").LayoutChildProps) & typeof Datepicker;
/**
 * @element gds-datepicker
 * A form control that allows the user to select a date.
 *
 *
 * @slot extended-supporting-text - A longer supporting text can be placed here. It will be displayed in a panel when the user clicks the info button.
 * @slot message - ***(deprecated - use `errorMessage` property instead)*** Error message to show below the input field whem there is a validation error.
 * @slot sub-label - ***(deprecated - use `supporting-text` property instead)*** Renders between the label and the trigger button.
 *
 * @event change - Fired when the value of the dropdown is changed through user interaction (not when value prop is set programatically).
 * @event gds-ui-state - Fired when the dropdown is opened or closed.
 */
export declare class GdsDatepicker extends GdsDatepicker_base {
}
export {};
