import { FileTypes, NumericRange } from '@progress/sitefinity-nextjs-sdk/widgets/forms';
import { Browsable, Category, Choice, ChoiceItem, ChoiceWithText, Range, ColorPalette, ComplexType, ConditionalVisibility, Content, ContentContainer, ContentSection, ContentSectionTitles, Copy, DataModel, DataType, DateSettings, DecimalPlaces, DefaultValue, Description, DescriptionExtended, DisplayName, DisplaySettings, DynamicLinksContainer, FallbackToDefaultValueWhenEmpty, Group, KeysValues, KnownContentTypes, KnownFieldTypes, LengthDependsOn, LinkModel, MaxLength, MinLength, Mirror, MixedContentContext, Placeholder, PropertyCategory, Readonly, Required, SectionsOrder, StringLength, StylingConfig, Suffix, TableView, TaxonomyContent, Url, ViewSelector, WidgetEntity, WidgetLabel } from '@progress/sitefinity-widget-designers-sdk';
import { BigComplexObject, ComplexObject, ComplexObjectNoDefaults, ComplexObjectWithContent, ComplexObjectWithLinks, ComplexWithNesting, ComplexWithNestingTable, ComplexWithNestingTableTable, MultiLevelComplexObject } from './models';

@Required('This is required bool.')
    @DataType('bool')
    public BoolFieldRequired: boolean | null = false;

    @ConditionalVisibility('{"conditions":[{"fieldName":"BoolFieldRequired","operator":"Equals","value":"true"}]}')
    @DataType('bool')
    public ConditionalProp: boolean | null = false;

    @DefaultValue(true)
    @DataType('bool')
    public BoolDefaultValue: boolean | null = null;

    @DataType('bool')
    public PlainBool: boolean | null = false;

    @DataType('bool')
    public NullableBool?: boolean | null = null;

    @DefaultValue(true)
    @DataType('bool')
    public NullableBoolWithDefault?: boolean | null = null;

    @Group('Options')
    @DisplayName('Checkbox field')
    @DefaultValue(true)
    @DataType(KnownFieldTypes.CheckBox)
    public CheckboxField: boolean | null = null;

    @Group('Options')
    @DisplayName('Checkbox field')
    @DefaultValue(true)
    @DataType(KnownFieldTypes.CheckBox)
    public CheckboxField2: boolean | null = null;
}