/// <reference types="emscripten" />
import { Serializable } from './private/Serializable.js';

declare enum VibrationType {
    default = "default"
}
interface VibrationJSON {
    type: VibrationType;
}
declare class Vibration implements Serializable<VibrationJSON> {
    private readonly type;
    private readonly pattern;
    private readonly _vibrate;
    private constructor();
    static get defaultVibration(): Vibration;
    private static withPattern;
    toJSONObject(): VibrationJSON;
    private vibrate;
}
interface SoundJSON {
    resource?: string;
}
declare class Sound implements Serializable<SoundJSON> {
    private static _defaultSound;
    private readonly audio;
    resource: string | null;
    static get defaultSound(): Sound;
    constructor(resource: string | null);
    toJSONObject(): SoundJSON;
    private play;
}
interface FeedbackJSON {
    vibration?: VibrationJSON;
    sound?: SoundJSON;
}
declare class Feedback implements Serializable<FeedbackJSON> {
    static get defaultFeedback(): Feedback;
    private readonly _vibration;
    private readonly _sound;
    get vibration(): Vibration | null;
    get sound(): Sound | null;
    constructor(vibration: Vibration | null, sound: Sound | null);
    emit(): void;
    toJSONObject(): FeedbackJSON;
}

export { Feedback, type FeedbackJSON, Sound, type SoundJSON, Vibration, type VibrationJSON };
