///
import { type Month } from '../../internal/helpers/date/index.js';
import type { MeltActionReturn } from '../../internal/types.js';
import { type DateValue } from '@internationalized/date';
import type { RangeCalendarEvents } from './events.js';
import type { CreateRangeCalendarProps } from './types.js';
export declare const rangeCalendarIdParts: readonly ["calendar", "accessibleHeading"];
export type RangeCalendarIdParts = typeof rangeCalendarIdParts;
export declare function createRangeCalendar(props?: CreateRangeCalendarProps): {
elements: {
calendar: import("../../internal/helpers/index.js").MeltElement<[import("../../internal/helpers/withGet.js").WithGet>, import("svelte/store").Readable, import("../../internal/helpers/withGet.js").WithGet>, import("../../internal/helpers/withGet.js").WithGet>, import("../../internal/helpers/withGet.js").WithGet>], (node: HTMLElement) => MeltActionReturn, ([$fullCalendarLabel, $isInvalid, $calendarId, $disabled, $readonly]: [string, boolean, string, boolean, boolean]) => {
readonly id: string;
readonly role: "application";
readonly 'aria-label': string;
readonly 'data-invalid': "" | undefined;
readonly 'data-disabled': "" | undefined;
readonly 'data-readonly': "" | undefined;
}, string>;
heading: import("../../internal/helpers/index.js").MeltElement<[import("../../internal/helpers/withGet.js").WithGet>], import("svelte/action").Action>, ([$disabled]: [boolean]) => {
readonly 'aria-hidden': true;
readonly 'data-disabled': "" | undefined;
}, string>;
grid: import("../../internal/helpers/index.js").MeltElement<[import("../../internal/helpers/withGet.js").WithGet>, import("../../internal/helpers/withGet.js").WithGet>], import("svelte/action").Action>, ([$readonly, $disabled]: [boolean, boolean]) => {
readonly tabindex: -1;
readonly role: "grid";
readonly 'aria-readonly': "true" | undefined;
readonly 'aria-disabled': "true" | undefined;
readonly 'data-readonly': "" | undefined;
readonly 'data-disabled': "" | undefined;
}, string>;
cell: import("../../internal/helpers/index.js").MeltElement<[import("svelte/store").Readable<(date: DateValue) => boolean>, import("svelte/store").Readable<(date: DateValue) => boolean>, import("svelte/store").Readable<(date: DateValue) => boolean>, import("../../internal/helpers/withGet.js").WithGet>, import("../../internal/helpers/withGet.js").WithGet boolean>>, import("../../internal/helpers/withGet.js").WithGet boolean>>, {
get: () => DateValue;
set: (this: void, value: DateValue) => void;
update: (this: void, updater: import("svelte/store").Updater) => void;
subscribe: (this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined) => import("svelte/store").Unsubscriber;
add: (duration: import("@internationalized/date").DateTimeDuration | import("@internationalized/date").DateDuration) => void;
subtract: (duration: import("@internationalized/date").DateTimeDuration | import("@internationalized/date").DateDuration) => void;
setDate: (fields: import("@internationalized/date").DateFields | (import("@internationalized/date").DateFields & import("@internationalized/date").TimeFields), disambiguation?: import("@internationalized/date").Disambiguation | undefined) => void;
reset: () => void;
toWritable: () => {
set: (this: void, value: DateValue) => void;
subscribe: (this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined) => import("svelte/store").Unsubscriber;
update: (this: void, updater: import("svelte/store").Updater) => void;
get: () => DateValue;
};
nextPage: (amount: number) => void;
prevPage: (amount: number) => void;
}, import("../../internal/helpers/withGet.js").WithGet boolean>>], (node: HTMLElement) => MeltActionReturn, ([$isSelected, $isSelectionEnd, $isSelectionStart, $highlightedRange, $isDateDisabled, $isDateUnavailable, $placeholder, $isOutsideVisibleMonths,]: [(date: DateValue) => boolean, (date: DateValue) => boolean, (date: DateValue) => boolean, {
start: DateValue;
end: DateValue;
} | null, (date: DateValue) => boolean, (date: DateValue) => boolean, DateValue, (date: DateValue) => boolean]) => (cellValue: T, monthValue: T) => {
readonly role: "button";
readonly 'aria-label': string;
readonly 'aria-selected': true | undefined;
readonly 'aria-disabled': true | undefined;
readonly 'data-selected': true | undefined;
readonly 'data-selection-start': true | undefined;
readonly 'data-selection-end': true | undefined;
readonly 'data-value': string;
readonly 'data-disabled': "" | undefined;
readonly 'data-unavailable': "" | undefined;
readonly 'data-today': "" | undefined;
readonly 'data-outside-month': "" | undefined;
readonly 'data-outside-visible-months': "" | undefined;
readonly 'data-focused': "" | undefined;
readonly 'data-highlighted': "" | undefined;
readonly tabindex: 0 | -1 | undefined;
}, string>;
nextButton: import("../../internal/helpers/index.js").MeltElement<[import("../../internal/helpers/withGet.js").WithGet>], (node: HTMLElement) => MeltActionReturn, ([$isNextButtonDisabled]: [boolean]) => {
readonly role: "button";
readonly type: "button";
readonly 'aria-label': "Next";
readonly 'aria-disabled': "true" | undefined;
readonly disabled: true | undefined;
readonly 'data-disabled': "" | undefined;
}, string>;
prevButton: import("../../internal/helpers/index.js").MeltElement<[import("../../internal/helpers/withGet.js").WithGet>], (node: HTMLElement) => MeltActionReturn, ([$isPrevButtonDisabled]: [boolean]) => {
readonly role: "button";
readonly type: "button";
readonly 'aria-label': "Previous";
readonly 'aria-disabled': "true" | undefined;
readonly disabled: true | undefined;
readonly 'data-disabled': "" | undefined;
}, string>;
};
states: {
placeholder: {
set: (this: void, value: DateValue) => void;
subscribe: (this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined) => import("svelte/store").Unsubscriber;
update: (this: void, updater: import("svelte/store").Updater) => void;
get: () => DateValue;
};
months: import("../../internal/helpers/withGet.js").WithGet[]>>;
weekdays: import("svelte/store").Readable;
headingValue: import("../../internal/helpers/withGet.js").WithGet>;
value: {
update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: import("../../internal/helpers/date/index.js").DateRange) => void) | undefined) => void;
set: (this: void, value: import("../../internal/helpers/date/index.js").DateRange) => void;
subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber;
get: () => import("../../internal/helpers/date/index.js").DateRange;
destroy?: (() => void) | undefined;
};
startValue: import("../../internal/helpers/withGet.js").WithGet>;
endValue: import("../../internal/helpers/withGet.js").WithGet>;
};
helpers: {
nextPage: () => void;
prevPage: () => void;
nextYear: () => void;
prevYear: () => void;
setYear: (year: number) => void;
setMonth: (month: number) => void;
isDateDisabled: import("svelte/store").Readable<(date: DateValue) => boolean>;
isDateUnavailable: import("../../internal/helpers/withGet.js").WithGet boolean>>;
isSelectionStart: import("svelte/store").Readable<(date: DateValue) => boolean>;
isSelectionEnd: import("svelte/store").Readable<(date: DateValue) => boolean>;
isSelected: import("svelte/store").Readable<(date: DateValue) => boolean>;
};
options: import("../../internal/helpers/index.js").ToWritableStores<{
disabled: boolean;
onValueChange?: import("../../internal/helpers/index.js").ChangeFn | undefined;
defaultValue: import("../../internal/helpers/date/index.js").DateRange;
ids?: Partial<{
calendar: string;
accessibleHeading: string;
}> | undefined;
defaultPlaceholder?: DateValue | undefined;
onPlaceholderChange?: import("../../internal/helpers/index.js").ChangeFn | undefined;
isDateUnavailable: import("../../internal/helpers/date/index.js").Matcher | undefined;
minValue: DateValue | undefined;
maxValue: DateValue | undefined;
readonly: boolean;
locale: string;
weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
fixedWeeks: boolean;
numberOfMonths: number;
preventDeselect: boolean;
pagedNavigation: boolean;
weekdayFormat: "long" | "short" | "narrow";
isDateDisabled: import("../../internal/helpers/date/index.js").Matcher | undefined;
calendarLabel: string;
}>;
ids: import("../../internal/helpers/index.js").ToWritableStores<{
calendar: string;
accessibleHeading: string;
}>;
};