import { type DateGranularity } from '../../utils';
import { Ele as NumListEle } from '../num-list';
import { type BaseAttrs, type BaseEmits, UiBase } from '../web-component-base';
export declare const granularityList: readonly ["day", "month", "year"];
export type Granularity = DateGranularity;
export declare const colOrderList: readonly ["ymd", "ydm", "myd", "mdy", "dym", "dmy"];
export type ColOrder = (typeof colOrderList)[number] & {
    [Symbol.iterator](): IterableIterator<'y' | 'm' | 'd'>;
};
export interface Attrs extends BaseAttrs {
    millisecond: number;
    /**
     * 选择器的粒度，表示最大可选的时间单位。默认为 year。
     * 例如设置为 'month'，则表示最大只能选择到月份，年将被忽略。
     */
    'max-granularity'?: Granularity;
    /**
     * 选择器的粒度，表示最小可选的时间单位。默认为 second。
     * 例如设置为 'month'，则表示只能选择到月份，日会将被忽略。
     */
    'min-granularity'?: Granularity;
    'col-order'?: ColOrder;
}
export type { BaseEmits };
/** 日期选择器 */
export declare class BaseEle<A extends Attrs, E extends BaseEmits> extends UiBase<A, E> {
    protected static _style: string;
    protected static _template: string;
    static get observedAttributes(): string[];
    /** 当前选中日期，不带时分秒，用户点击列表内数字后会更新该值 */
    get millisecond(): number;
    set millisecond(v: number);
    get maxGranularity(): Granularity;
    set maxGranularity(v: Granularity);
    get minGranularity(): Granularity;
    set minGranularity(v: Granularity);
    get colOrder(): ColOrder;
    set colOrder(v: ColOrder);
    get _staticEls(): {
        readonly cols: HTMLElement;
        readonly yCol: HTMLElement;
        readonly mCol: HTMLElement;
        readonly dCol: HTMLElement;
        readonly lists: any[];
        readonly yList: NumListEle;
        readonly mList: NumListEle;
        readonly dList: NumListEle;
    };
    protected get _minmaxGran(): {
        min: "month" | "year" | "day";
        max: "month" | "year" | "day";
    };
    scrollToCurrentItem(): void;
    connectedCallback(): boolean | void;
    protected _onAttrChanged(name: string, oldValue: string | null, newValue: string | null): void;
    private _renderCols;
    private _updateGranularity;
    private _updateColsValue;
    private _getMsFromEle;
    private _onColsSelect;
}
