import { LoopableRegion, ppqn, Region } from "@opendaw/lib-dsp"; import { Comparator, int, Maybe, Observer, Option, Selectable, Subscription } from "@opendaw/lib-std"; import { AudioRegionBoxAdapter } from "./region/AudioRegionBoxAdapter"; import { Box, Field } from "@opendaw/lib-box"; import { NoteRegionBoxAdapter } from "./region/NoteRegionBoxAdapter"; import { Pointers } from "@opendaw/studio-enums"; import { ValueRegionBoxAdapter } from "./region/ValueRegionBoxAdapter"; import { AnyRegionBox } from "../unions"; import { BoxAdapter } from "../BoxAdapter"; import { TrackBoxAdapter } from "./TrackBoxAdapter"; import { AnyRegionBoxAdapter } from "../UnionAdapterTypes"; import { BoxAdapters } from "../BoxAdapters"; export interface RegionBoxAdapterVisitor { visitNoteRegionBoxAdapter?(adapter: NoteRegionBoxAdapter): R; visitAudioRegionBoxAdapter?(adapter: AudioRegionBoxAdapter): R; visitValueRegionBoxAdapter?(adapter: ValueRegionBoxAdapter): R; } export interface RegionBoxAdapter extends BoxAdapter, Region, Selectable { get box(): AnyRegionBox; get isSelected(): boolean; get hue(): int; get mute(): boolean; get label(): string; get isMirrowed(): boolean; get canMirror(): boolean; get canResize(): boolean; get trackBoxAdapter(): Option; get hasCollection(): boolean; get optCollection(): Option; isAudioRegion(): this is AudioRegionBoxAdapter; isNoteRegion(): this is NoteRegionBoxAdapter; isValueRegion(): this is ValueRegionBoxAdapter; /** Resolve duration at a given position (for preview during drag operations) */ resolveDuration(position: ppqn): ppqn; /** Resolve complete (position + duration) at a given position (for preview during drag operations) */ resolveComplete(position: ppqn): ppqn; subscribeChange(observer: Observer): Subscription; copyTo(target?: { track?: Field; position?: ppqn; }): AnyRegionBoxAdapter; consolidate(): void; flatten(regions: ReadonlyArray>): void; canFlatten(regions: ReadonlyArray>): boolean; accept>(visitor: VISITOR): VISITOR extends RegionBoxAdapterVisitor ? Maybe : void; } export interface LoopableRegionBoxAdapter extends RegionBoxAdapter, LoopableRegion { get offset(): ppqn; get loopOffset(): ppqn; get loopDuration(): ppqn; set loopDuration(value: ppqn); resolveLoopDuration(position: ppqn): ppqn; moveContentStart(delta: ppqn): void; } export declare const RegionComparator: Comparator; export declare const RegionAdapters: { for: (boxAdapters: BoxAdapters, box: Box) => AnyRegionBoxAdapter; }; //# sourceMappingURL=RegionBoxAdapter.d.ts.map