/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
/**
 * Functionality for FieldKinds that is stable,
 * meaning that it can not change in any measurable way without providing a new identifier.
 *
 * It is assumed that this information and policy is available on all clients interacting with a document
 * using the identifier.
 *
 * This must contain enough information to process remote edits to this FieldKind consistently with all clients.
 * All behavior must be deterministic, and not change across versions of the app/library.
 *
 * These policies include the data encoding, change encoding, change rebase and change application.
 *
 * @privateRemarks
 * Using a class gets stronger (nominal) typing for objects which will be down cast.
 */
export class FlexFieldKind {
    constructor(identifier, multiplicity, 
    // TODO: stronger typing
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    options) {
        this.identifier = identifier;
        this.multiplicity = multiplicity;
        this.options = options;
        this.changeHandler = options.changeHandler;
    }
}
//# sourceMappingURL=fieldKind.js.map