export default SoundController;
export class SoundControllerSerializationAdapter extends BinaryClassSerializationAdapter<any> {
    constructor();
    klass: typeof SoundController;
    version: number;
    /**
     *
     * @param {BinaryBuffer} buffer
     * @param {SoundController} value
     */
    serialize(buffer: BinaryBuffer, value: SoundController): void;
    /**
     *
     * @param {BinaryBuffer} buffer
     * @param {SoundController} value
     */
    deserialize(buffer: BinaryBuffer, value: SoundController): void;
}
declare class SoundController {
    /**
     *
     * @constructor
     * @property {List.<Rule>} rule
     */
    constructor(options: any);
    rules: List<any>;
    fromJSON(json: any): void;
    toJSON(): any;
}
declare namespace SoundController {
    export { Rule };
    export let typeName: string;
}
import { BinaryClassSerializationAdapter } from "../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
import List from '../../../core/collection/list/List.js';
declare class Rule {
    /**
     *
     * @type {Array<string>}
     */
    tracks: Array<string>;
    /**
     *
     * @type {String|null}
     */
    startEvent: string | null;
    /**
     *
     * @type {String|null}
     */
    stopEvent: string | null;
    /**
     *
     * @type {boolean}
     */
    loop: boolean;
    /**
     *
     * @type {number}
     */
    volume: number;
    /**
     *
     * @type {String|null}
     */
    channel: string | null;
    toJSON(): {
        tracks: string[];
        startEvent: string;
        stopEvent: string;
        loop: boolean;
        volume: number;
        channel: string;
    };
    fromJSON(json: any): void;
    url: any;
    /**
     *
     * @param {BinaryBuffer} buffer
     */
    toBinaryBuffer(buffer: BinaryBuffer): void;
    /**
     *
     * @param {BinaryBuffer} buffer
     */
    fromBinaryBuffer(buffer: BinaryBuffer): void;
}
//# sourceMappingURL=SoundController.d.ts.map