/** * Generic class for storing properties that are explicitly specified * and implicitly determined by the compiler. * This is important for scale/axis/legend merging as * we want to prioritize properties that users explicitly specified. */ export declare class Split { readonly explicit: Partial; readonly implicit: Partial; constructor(explicit?: Partial, implicit?: Partial); clone(): Split; combine(): Partial; get(key: K): T[K]; getWithExplicit(key: K): Explicit; setWithExplicit(key: K, { value, explicit }: Explicit): void; set(key: K, value: T[K], explicit: boolean): this; copyKeyFromSplit(key: keyof T, { explicit, implicit }: Split): void; copyKeyFromObject(key: keyof T, s: Partial): void; /** * Merge split object into this split object. Properties from the other split * overwrite properties from this split. */ copyAll(other: Split): void; } export interface Explicit { explicit: boolean; value: T; } export declare function makeExplicit(value: T): Explicit; export declare function makeImplicit(value: T): Explicit; export type SplitParentProperty = 'scale' | 'axis' | 'legend' | ''; export declare function tieBreakByComparing(compare: (v1: T, v2: T) => number): (v1: Explicit, v2: Explicit, property: keyof S | never, propertyOf: SplitParentProperty) => Explicit; export declare function defaultTieBreaker(v1: Explicit, v2: Explicit, property: keyof S, propertyOf: SplitParentProperty): Explicit; export declare function mergeValuesWithExplicit(v1: Explicit, v2: Explicit, property: keyof S, propertyOf: SplitParentProperty, tieBreaker?: (v1: Explicit, v2: Explicit, property: keyof S, propertyOf: string) => Explicit): Explicit; //# sourceMappingURL=split.d.ts.map