import type { GetAngleFn } from '../../beatmap/schema/shared/types/functions.js'; import type { IWrapBaseNote } from '../../beatmap/schema/wrapper/types/baseNote.js'; import type { IWrapColorNote } from '../../beatmap/schema/wrapper/types/colorNote.js'; import type { IWrapGridObject } from '../../beatmap/schema/wrapper/types/gridObject.js'; import type { GetPositionFn } from '../../beatmap/schema/shared/types/functions.js'; /** Check if current note can be swung into from previous note. */ export declare function isEndNote>(endNote: T, startNote: T, maybeDirection: number, angleTolerance?: number): boolean; export declare function isNotePointing(note: Pick & { angleOffset?: number; }, target: Pick & { angleOffset?: number; }, angleTolerance: number, getPosition?: GetPositionFn>, getAngle?: GetAngleFn & { angleOffset?: number; }>): boolean; /** * Check if the note intersect on swing path by angle and distance. * * Can be used to check for hitbox collision or handclap. * * ```ts * if (isIntersect(note1, note2, [[20, 1.5]])) {} * ``` */ export declare function isNoteSwingable(noteA: Pick & { angleOffset?: number; }, noteB: Pick & { angleOffset?: number; }, angleTolerance: number, getPosition?: GetPositionFn>, getAngle?: GetAngleFn & { angleOffset?: number; }>): boolean; export declare function predictDirection>(endNote: T, startNote: T): number; /** * Check the angle equality of the two notes. * @param {(T|number|null)} noteA - First beatmap note, note `direction`, or null value * @param {(T|number|null)} noteB - Second beatmap note, note `direction`, or null value * @param {number} angleTol - Angle tolerance * @param {boolean} equal - If it should check inner or outer angle * @returns {boolean} If condition is met */ export declare function checkDirection>(noteA: T | number | null, noteB: T | number | null, angleTol: number, equal: boolean): boolean; //# sourceMappingURL=note.d.ts.map