export type SerializationFlags = number;
export namespace SerializationFlags {
    let Transient: number;
}
/**
 * Stores settings for entity serialization
 */
export class SerializationMetadata {
    /**
     * 32 bit bitfield.
     * Use {@link setFlag}/{@link getFlag} etc. to read individual flag values
     * @type {number}
     */
    flags: number;
    /**
     *
     * @param {number|SerializationFlags} flag
     * @returns {void}
     */
    setFlag(flag: number | SerializationFlags): void;
    /**
     *
     * @param {number|SerializationFlags} flag
     * @returns {void}
     */
    clearFlag(flag: number | SerializationFlags): void;
    /**
     *
     * @param {number|SerializationFlags} flag
     * @param {boolean} value
     */
    writeFlag(flag: number | SerializationFlags, value: boolean): void;
    /**
     *
     * @param {number|SerializationFlags} flag
     * @returns {boolean}
     */
    getFlag(flag: number | SerializationFlags): boolean;
    toJSON(): {
        flags: number;
    };
    fromJSON({ flags }: {
        flags?: number;
    }): void;
}
export namespace SerializationMetadata {
    let Transient_1: Readonly<SerializationMetadata>;
    export { Transient_1 as Transient };
    export let typeName: string;
}
//# sourceMappingURL=SerializationMetadata.d.ts.map