import { Nullable, Observable, Option, StringMapping, Terminable, ValueMapping } from "@opendaw/lib-std"; import { Field, StringField } from "@opendaw/lib-box"; import { Pointers } from "@opendaw/studio-enums"; import { ParameterAdapterSet } from "./ParameterAdapterSet"; export type ParamMapping = "unipolar" | "linear" | "exp" | "int" | "bool"; export interface ParamDeclaration { readonly label: string; readonly defaultValue: number; readonly min: number; readonly max: number; readonly mapping: ParamMapping; readonly unit: string; } export interface SampleDeclaration { readonly label: string; } export interface GroupDeclaration { readonly label: string; readonly color: string; } export type DeclarationItem = { readonly type: "param"; readonly declaration: ParamDeclaration; } | { readonly type: "sample"; readonly declaration: SampleDeclaration; }; export interface DeclarationSection { readonly group: Nullable; readonly items: ReadonlyArray; } export declare namespace ScriptDeclaration { export const isEqual: (a: ParamDeclaration, b: ParamDeclaration) => boolean; export const parseLabel: (code: string) => Option; export const parseParams: (code: string) => ReadonlyArray; export const parseSamples: (code: string) => ReadonlyArray; export const parseDeclarationOrder: (code: string) => Map; export const parseGroups: (code: string) => ReadonlyArray; export const resolveValueMapping: (declaration: ParamDeclaration) => ValueMapping; export const resolveStringMapping: (declaration: ParamDeclaration) => StringMapping; type ParamMapping = { valueMapping: ValueMapping; stringMapping: StringMapping; }; export const resolveParamMappings: (declaration: ParamDeclaration) => ParamMapping; export type ScriptParamsBinding = { readonly terminable: Terminable; readonly codeChanged: Observable; }; export const subscribeScriptParams: (parametric: ParameterAdapterSet, codeField: StringField, parametersField: Field) => ScriptParamsBinding; export {}; } //# sourceMappingURL=ScriptDeclaration.d.ts.map