/** * @param {any} domain * @returns {domain is SelectionDomainRef} */ export function isSelectionDomainRef(domain: any): domain is SelectionDomainRef; /** * @typedef {import("../utils/domainArray.js").DomainArray} DomainArray * @typedef {import("../spec/scale.js").ComplexDomain} ComplexDomain * @typedef {import("../spec/scale.js").ScalarDomain} ScalarDomain * @typedef {import("../spec/scale.js").SelectionDomainRef} SelectionDomainRef * @typedef {import("../spec/parameter.js").ExprRef} ExprRef * @typedef {import("./scaleResolution.js").ScaleResolutionMember} ScaleResolutionMember * @typedef {() => Set} ScaleMembersGetter * @typedef {(interval: ScalarDomain | ComplexDomain) => number[]} FromComplexInterval * @typedef {(assembly: import("../spec/scale.js").Scale["assembly"] | undefined) => number[]} GetLocusExtent * @typedef {{ * domains: DomainArray[], * selectionRef: SelectionDomainLinkInfo | undefined, * selectionRuntime: any, * selectionDescription: string | undefined, * hasLiteralDomain: boolean, * }} ConfiguredDomainResolutionState * @typedef {{ * kind: "literal", * domain: DomainArray, * } | { * kind: "selection", * domain: DomainArray | undefined, * description: string, * param: string, * encoding: "x" | "y", * hasInitial: boolean, * runtime: any, * }} ConfiguredDomainMemberResolution * @typedef {{ * param: string, * encoding: "x" | "y", * hasInitial: boolean, * runtime: any, * }} SelectionDomainLinkInfo */ export default class DomainPlanner { /** * @param {object} options * @param {ScaleMembersGetter} options.getActiveMembers Active shared-scale members used for configured domain planning. * @param {ScaleMembersGetter} [options.getAllMembers] All members, including inactive ones, used for conflict validation. * @param {ScaleMembersGetter} [options.getDataMembers] Members used for data-domain extraction; defaults to `getActiveMembers`. * @param {() => import("../spec/channel.js").Type} options.getType * @param {GetLocusExtent} options.getLocusExtent * @param {FromComplexInterval} options.fromComplexInterval */ constructor({ getActiveMembers, getAllMembers, getDataMembers, getType, getLocusExtent, fromComplexInterval, }: { getActiveMembers: ScaleMembersGetter; getAllMembers?: ScaleMembersGetter; getDataMembers?: ScaleMembersGetter; getType: () => import("../spec/channel.js").Type; getLocusExtent: GetLocusExtent; fromComplexInterval: FromComplexInterval; }); /** * @returns {any[]} */ get initialDomainSnapshot(): any[]; /** * @param {{ includeSelectionInitial?: boolean }} [options] */ hasConfiguredDomain(options?: { includeSelectionInitial?: boolean; }): boolean; hasSelectionConfiguredDomain(): boolean; /** * @returns {SelectionDomainLinkInfo | undefined} */ getSelectionConfiguredDomainBindingInfo(): SelectionDomainLinkInfo | undefined; getSelectionConfiguredDomainInfo(): { param: string; encoding: "x" | "y"; }; invalidateConfiguredDomain(): void; /** * Returns the default domain without considering configured domains. * * @param {boolean} [extractDataDomain] * @param {import("../spec/scale.js").Scale["assembly"]} [locusAssembly] * @returns {any[]} */ getDefaultDomain(extractDataDomain?: boolean, locusAssembly?: import("../spec/scale.js").Scale["assembly"]): any[]; /** * Returns the configured domain or a data-derived/default domain. * * @param {boolean} [extractDataDomain] * @param {import("../spec/scale.js").Scale["assembly"]} [locusAssembly] * @param {{ includeSelectionInitial?: boolean }} [options] * @returns {any[]} */ getConfiguredOrDefaultDomain(extractDataDomain?: boolean, locusAssembly?: import("../spec/scale.js").Scale["assembly"], options?: { includeSelectionInitial?: boolean; }): any[]; /** * Unions the configured domains of all participating views. * * @param {{ includeSelectionInitial?: boolean }} [options] * @return {DomainArray} */ getConfiguredDomain(options?: { includeSelectionInitial?: boolean; }): DomainArray; /** * Extracts and unions the data domains of all participating views. * * @return {DomainArray | undefined} */ getDataDomain(): DomainArray | undefined; /** * @param {import("../types/encoder.js").VegaScale} scale * @param {boolean} domainWasInitialized * @param {any[]} [snapshotDomain] * @returns {boolean} true if listeners should be notified immediately */ captureInitialDomain(scale: import("../types/encoder.js").VegaScale, domainWasInitialized: boolean, snapshotDomain?: any[]): boolean; #private; } export type DomainArray = import("../utils/domainArray.js").DomainArray; export type ComplexDomain = import("../spec/scale.js").ComplexDomain; export type ScalarDomain = import("../spec/scale.js").ScalarDomain; export type SelectionDomainRef = import("../spec/scale.js").SelectionDomainRef; export type ExprRef = import("../spec/parameter.js").ExprRef; export type ScaleResolutionMember = import("./scaleResolution.js").ScaleResolutionMember; export type ScaleMembersGetter = () => Set; export type FromComplexInterval = (interval: ScalarDomain | ComplexDomain) => number[]; export type GetLocusExtent = (assembly: import("../spec/scale.js").Scale["assembly"] | undefined) => number[]; export type ConfiguredDomainResolutionState = { domains: DomainArray[]; selectionRef: SelectionDomainLinkInfo | undefined; selectionRuntime: any; selectionDescription: string | undefined; hasLiteralDomain: boolean; }; export type ConfiguredDomainMemberResolution = { kind: "literal"; domain: DomainArray; } | { kind: "selection"; domain: DomainArray | undefined; description: string; param: string; encoding: "x" | "y"; hasInitial: boolean; runtime: any; }; export type SelectionDomainLinkInfo = { param: string; encoding: "x" | "y"; hasInitial: boolean; runtime: any; }; //# sourceMappingURL=domainPlanner.d.ts.map