import { ppqn } from "@opendaw/lib-dsp";
import { Sample } from "@opendaw/studio-adapters";
import { int } from "@opendaw/lib-std";
import { AudioClipBox, AudioFileBox, AudioRegionBox, TrackBox } from "@opendaw/studio-boxes";
import { TransientPlayMode } from "@opendaw/studio-enums";
import { BoxGraph } from "@opendaw/lib-box";
import { WarpMarkerTemplate } from "./WarpMarkerTemplate";
export declare namespace AudioContentFactory {
    type Props = {
        boxGraph: BoxGraph;
        targetTrack: TrackBox;
        audioFileBox: AudioFileBox;
        sample: Sample;
        duration?: ppqn | number;
        warpMarkers?: ReadonlyArray<WarpMarkerTemplate>;
        waveformOffset?: number;
        gainInDb?: number;
        disableQuantize?: boolean;
    };
    type Clip = Props & {
        index: int;
    };
    type Region = Props & {
        position: ppqn;
        name?: string;
    };
    type TimeStretchedProps = {
        transientPlayMode?: TransientPlayMode;
        playbackRate?: number;
    } & Props;
    type PitchStretchedProps = {} & Props;
    type NotStretchedProps = {} & Props;
    /**
     * Calculates the duration of an audio region based on sample properties.
     * Returns duration in PPQN for stretched regions, or in seconds for non-stretched.
     */
    const calculateDuration: (sample: Sample, disableQuantize?: boolean) => ppqn;
    const createTimeStretchedRegion: (props: TimeStretchedProps & Region) => AudioRegionBox;
    const createPitchStretchedRegion: (props: PitchStretchedProps & Region) => AudioRegionBox;
    const createNotStretchedRegion: (props: NotStretchedProps & Region) => AudioRegionBox;
    const createTimeStretchedClip: (props: TimeStretchedProps & Clip) => AudioClipBox;
    const createPitchStretchedClip: (props: PitchStretchedProps & Clip) => AudioClipBox;
    const createNotStretchedClip: (props: NotStretchedProps & Clip) => AudioClipBox;
}
//# sourceMappingURL=AudioContentFactory.d.ts.map