import { BooleanField, Box, Field, Int32Field, PointerField, StringField } from "@opendaw/lib-box"; import { AssertType, Option } from "@opendaw/lib-std"; import { Pointers } from "@opendaw/studio-enums"; import { TrackType } from "./timeline/TrackType"; import { IndexedBoxAdapterCollection } from "./IndexedBoxAdapterCollection"; import { BoxAdapter } from "./BoxAdapter"; import { AudioUnitInputAdapter } from "./audio-unit/AudioUnitInputAdapter"; import { AudioUnitBoxAdapter } from "./audio-unit/AudioUnitBoxAdapter"; import { LabeledAudioOutputsOwner } from "./LabeledAudioOutputsOwner"; export type DeviceType = "midi-effect" | "bus" | "instrument" | "audio-effect"; export type DeviceAccepts = "midi" | "audio" | false; export declare namespace DeviceAccepts { const toTrackType: (type: DeviceAccepts) => TrackType.Notes | TrackType.Audio; } export interface MidiEffectDeviceAdapter extends EffectDeviceBoxAdapter { readonly type: "midi-effect"; readonly accepts: "midi"; } export interface AudioEffectDeviceAdapter extends EffectDeviceBoxAdapter, LabeledAudioOutputsOwner { readonly type: "audio-effect"; readonly accepts: "audio"; } export type EffectPointerType = Pointers.AudioEffectHost | Pointers.MIDIEffectHost; export interface EffectDeviceBoxAdapter

extends DeviceBoxAdapter { readonly type: "audio-effect" | "midi-effect"; readonly accepts: "audio" | "midi"; get indexField(): Int32Field; get enabledField(): BooleanField; get host(): PointerField

; } export interface InstrumentDeviceBoxAdapter extends DeviceBoxAdapter, LabeledAudioOutputsOwner { readonly type: "instrument"; get iconField(): StringField; get defaultTrackType(): TrackType; get acceptsMidiEvents(): boolean; } export interface DeviceHost extends BoxAdapter, LabeledAudioOutputsOwner { readonly class: "device-host"; get midiEffects(): IndexedBoxAdapterCollection; get midiEffectsField(): Field; get inputAdapter(): Option; get audioEffects(): IndexedBoxAdapterCollection; get audioEffectsField(): Field; get inputField(): Field; get tracksField(): Field; get minimizedField(): BooleanField; get isAudioUnit(): boolean; get label(): string; deviceHost(): DeviceHost; audioUnitBoxAdapter(): AudioUnitBoxAdapter; } export interface DeviceBoxAdapter extends BoxAdapter { readonly type: DeviceType; readonly manualUrl: string; get box(): Box; get labelField(): StringField; get enabledField(): BooleanField; get minimizedField(): BooleanField; get accepts(): DeviceAccepts; deviceHost(): DeviceHost; audioUnitBoxAdapter(): AudioUnitBoxAdapter; } export declare namespace Devices { const isAny: AssertType; const isEffect: AssertType; const isInstrument: AssertType; const isMidiEffect: AssertType; const isAudioEffect: AssertType; const isHost: AssertType; const deleteEffectDevices: (devices: ReadonlyArray) => void; } //# sourceMappingURL=DeviceAdapter.d.ts.map