/// <reference path="./sigApi.PropertyObject.d.ts" />

declare namespace SigApi {
    interface ViewModelBlueprint {
        /**
         * The controlId (e.g. 'sig-control-text').
         */
        controlId: string
        /**
         * The name of the control should be unique within its parent structure. Used by sigApi.vm.getVmByName(`{string}`).
         */
        name: string
        /**
         * A optional unique instanceId. Generated by Runtime if undefined.
         */
        instanceId?: string
        /**
         * The key:value pair of control properties. Properties are expected in Format: {@link PropertyObject}.
         */
        props?: Record<string, PropertyObject>
        /**
         * Optional child controls.
         */
        controls?: ViewModelBlueprint[]
    }
}
