export interface ISendOscMessage {
    (message: OscMessage): void;
}
export declare enum OscArgumentType {
    /** 32-bit Integer */
    INT = "i",
    /** 64-bit Integer */
    LONG = "h",
    /** 32-bit Floating Point */
    FLOAT = "f",
    /** 64-bit Floating Point */
    DOUBLE = "d",
    /** String */
    STRING = "s",
    /** Single Character */
    CHAR = "c",
    /** Binary blob */
    BLOB = "b",
    /** True. No bytes are allocated in the argument data */
    TRUE = "T",
    /** False. No bytes are allocated in the argument data */
    FALSE = "F",
    /** Null. No bytes are allocated in the argument data */
    NULL = "N",
    /** Impulse aka bang. Used for event triggers. No bytes are allocated in the argument data */
    IMPULSE = "I",
    COLOR = "r",
    MIDI = "m"
}
export interface OscArgument<T> {
    readonly type: OscArgumentType;
    value: T;
}
export declare type SomeOscArgument = StringArgument | IntArgument | FloatArgument;
export interface StringArgument extends OscArgument<string> {
    type: OscArgumentType.STRING;
    readonly value: string;
}
export interface IntArgument extends OscArgument<number> {
    type: OscArgumentType.INT;
    readonly value: number;
}
export interface FloatArgument extends OscArgument<number> {
    type: OscArgumentType.FLOAT;
    readonly value: number;
}
export declare const StringArgument: (value: string) => StringArgument;
export declare const IntArgument: (value: number) => IntArgument;
export declare const FloatArgument: (value: number) => FloatArgument;
export declare const BoolArgument: (value: boolean) => IntArgument;
export declare type RawOscMessage = {
    readonly address: string;
    readonly args?: SomeOscArgument[];
};
export declare class OscMessage {
    readonly address: string;
    readonly addressParts: string[];
    readonly args: SomeOscArgument[];
    constructor(address: string, args?: SomeOscArgument[]);
}
export declare class StringMessage extends OscMessage {
    constructor(address: string, value: string);
}
export declare class BooleanMessage extends OscMessage {
    constructor(address: string, value: boolean);
}
export declare class ActionMessage extends OscMessage {
    constructor(commandId: string | number, value?: number | null);
}
export declare class ToggleMessage extends OscMessage {
    constructor(address: string);
}
export declare class IntegerMessage extends OscMessage {
    constructor(address: string, value: number);
}
export declare class FloatMessage extends OscMessage {
    constructor(address: string, value: number);
}
