/* tslint:disable:max-classes-per-file */
/* tslint:disable:variable-name */
/* tslint:disable:no-trailing-whitespace */
/* tslint:disable:no-consecutive-blank-lines */
/* tslint:disable:no-namespace */
/* tslint:disable:member-access */
/* tslint:disable:typedef-whitespace */
/* tslint:disable:no-internal-module */

declare module EVA.Makeup {
  
  export class BlockDto {
    ID : string; 
    Type : string; 
    Input : { [ key : string ] : EVA.Makeup.BlockInputDto }; 
    CssClasses : string[]; 
    Name : string; 
    Template : string; 
    Content : string; 
    Width : string; 
    Height : string; 
    CssStyles : string; 
    IsCurrent : boolean; 
    Version : number; // Int32
    VersionDescription : string; 
  }
  
  export class BlockInputDto {
    Value : any; 
    Description : string; 
    Type : string; 
    IsOptional : boolean; 
  }
  
  export class BlockVersionDto {
    ID : string; 
    Version : number; // Int32
    IsCurrent : boolean; 
    VersionDescription : string; 
  }
  
  export class ConfigurationProfileAggregationConfigDto {
    TypeID : string; 
    Type : string; 
    InitialShownItems : number; // Int32
    Sorting : string[][]; 
  }
  
  export class ConfigurationProfileDto {
    SiteID : number; // Int32
    LanguageID : string; 
    AggregationConfigs : EVA.Makeup.ConfigurationProfileAggregationConfigDto[]; 
    DefaultAggregationOptions : { [ key : string ] : EVA.Core.AggregationFilterModel }; 
    ProductPropertyTypeMappings : EVA.Makeup.ProductPropertyTypeMappingDto[]; 
    DefaultFilters : { [ key : string ] : EVA.Core.FilterModel }; 
    DefaultPageLimit : EVA.Makeup.ConfigurationProfilePageLimitDto; 
    DefaultSort : EVA.Makeup.ConfigurationProfileSortOptionsDto[]; 
    DefaultIncludedFields : string[]; 
    AvailableSortOptions : EVA.Makeup.ConfigurationProfileSortOptionsDto[]; 
    AvailablePageLimits : EVA.Makeup.ConfigurationProfilePageLimitDto[]; 
  }
  
  export class ConfigurationProfilePageLimitDto {
    Limit : number; // Int32
    LimitDisplay : string; 
  }
  
  export enum ConfigurationProfileSortOptionsDirection {
    Ascending = 0,
    Descending = 1,
  }
  
  export class ConfigurationProfileSortOptionsDto {
    FieldName : string; 
    SortDisplay : string; 
    Direction : EVA.Makeup.ConfigurationProfileSortOptionsDirection; 
  }
  
  export class ContainerChildDto {
    CssClasses : string[]; 
    Blocks : EVA.Makeup.PageBlockDto[]; 
    Width : string; 
    Height : string; 
  }
  
  export class ContainerDto {
    CssClasses : string[]; 
    Children : EVA.Makeup.ContainerChildDto[]; 
    Width : string; 
    Height : string; 
  }
  
  export class CreateEventModel {
    Name : string; 
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
    IsActive : boolean; 
  }
  
  export class EventDto {
    ID : number; // Int32
    Name : string; 
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
    IsActive : boolean; 
  }
  
  export interface IPageBlock {
    ID : string; 
    Type : string; 
    CssClasses : string[]; 
    Name : string; 
    Template : string; 
    Width : string; 
    Height : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupActivateEvent extends EVA.API.RequestMessageWithEmptyResponse {
    EventID : number; // Int32
  }
  
  export class MakeupCreateBlock extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupCreateBlockResponse> {
    Block : EVA.Makeup.BlockDto; 
  }
  
  export class MakeupCreateBlockResponse extends EVA.API.ResponseMessage {
    ID : string; 
  }
  
  export class MakeupCreateEvent extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupCreateEventResponse> {
    Event : EVA.Makeup.CreateEventModel; 
  }
  
  export class MakeupCreateEventResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }
  
  export class MakeupCreateMenu extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupCreateMenuResponse> {
    Menu : EVA.Makeup.MenuDto; 
  }
  
  export class MakeupCreateMenuResponse extends EVA.API.ResponseMessage {
    ID : string; 
  }
  
  export class MakeupCreatePage extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupCreatePageResponse> {
    Page : EVA.Makeup.PageDto; 
  }
  
  export class MakeupCreatePageResponse extends EVA.API.ResponseMessage {
    ID : string; 
  }
  
  export class MakeupCreateSite extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupCreateSiteResponse> {
    Name : string; 
    OrganizationUnitID : number; // Int32
    LanguageID : string; 
    BackendID : string; 
  }
  
  export class MakeupCreateSiteResponse extends EVA.API.ResponseMessage {
    SiteID : number; // Int32
    AnonymousUserToken : string; 
  }
  
  export class MakeupDeactivateEvent extends EVA.API.RequestMessageWithEmptyResponse {
    EventID : number; // Int32
  }
  
  export class MakeupDeleteBlock extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupDeleteEvent extends EVA.API.RequestMessageWithEmptyResponse {
    EventID : number; // Int32
  }
  
  export class MakeupDeleteMenu extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    LanguageID : string; 
  }
  
  export class MakeupDeletePage extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    LanguageID : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupGetBlockByID extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetBlockByIDResponse> {
    ID : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupGetBlockByIDResponse extends EVA.API.ResponseMessage {
    Block : EVA.Makeup.BlockDto; 
  }
  
  export class MakeupGetConfigurationProfile extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetConfigurationProfileResponse> {
    LanguageID : string; 
  }
  
  export class MakeupGetConfigurationProfileResponse extends EVA.API.ResponseMessage {
    Configuration : EVA.Makeup.ConfigurationProfileDto; 
  }
  
  export class MakeupGetCurrentBlockVersion extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetCurrentBlockVersionResponse> {
    ID : string; 
  }
  
  export class MakeupGetCurrentBlockVersionResponse extends EVA.API.ResponseMessage {
    Version : number; // Int32
    VersionDescription : string; 
  }
  
  export class MakeupGetCurrentPageVersion extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetCurrentPageVersionResponse> {
    ID : string; 
    LanguageID : string; 
  }
  
  export class MakeupGetCurrentPageVersionResponse extends EVA.API.ResponseMessage {
    Version : number; // Int32
    VersionDescription : string; 
  }
  
  export class MakeupGetEventByID extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetEventByIDResponse> {
    ID : number; // Int32
  }
  
  export class MakeupGetEventByIDResponse extends EVA.API.ResponseMessage {
    Event : EVA.Makeup.EventDto; 
  }
  
  export class MakeupGetMenuByID extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetMenuByIDResponse> {
    ID : string; 
    LanguageID : string; 
  }
  
  export class MakeupGetMenuByIDResponse extends EVA.API.ResponseMessage {
    Menu : EVA.Makeup.MenuDto; 
  }
  
  export class MakeupGetPageByID extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetPageByIdResponse> {
    ID : string; 
    LanguageID : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupGetPageByIdResponse extends EVA.API.ResponseMessage {
    Page : EVA.Makeup.PageDto; 
  }
  
  export class MakeupGetPageByPath extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetPageByPathResponse> {
    Path : string; 
    LanguageID : string; 
  }
  
  export class MakeupGetPageByPathResponse extends EVA.API.ResponseMessage {
    Page : EVA.Makeup.PageDto; 
    PathContext : EVA.Makeup.PathContext; 
  }
  
  export class MakeupGetPageMap extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetPageMapResponse> {
    LanguageID : string; 
  }
  
  export class MakeupGetPageMapResponse extends EVA.API.ResponseMessage {
    PageMap : { [ key : string ] : EVA.Makeup.MakeupPageMapSection }; 
  }
  
  export class MakeupGetRenderedBlockByID extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetRenderedBlockByIDResponse> {
    ID : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupGetRenderedBlockByIDResponse extends EVA.API.ResponseMessage {
    Block : EVA.Makeup.BlockDto; 
  }
  
  export class MakeupGetRenderedPageByID extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetRenderedPageByIDResponse> {
    ID : string; 
    LanguageID : string; 
    Version? : number; // Int32, nullable
  }
  
  export class MakeupGetRenderedPageByIDResponse extends EVA.API.ResponseMessage {
    Page : EVA.Makeup.RenderedPageDto; 
  }
  
  export class MakeupGetRenderedPageByPath extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetRenderedPageByPathResponse> {
    Path : string; 
    LanguageID : string; 
  }
  
  export class MakeupGetRenderedPageByPathResponse extends EVA.API.ResponseMessage {
    Page : EVA.Makeup.RenderedPageDto; 
  }
  
  export class MakeupGetRenderedPagesByPartialPath extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetRenderedPagesByPartialPathResponse> {
    PartialPath : string; 
    LanguageID : string; 
  }
  
  export class MakeupGetRenderedPagesByPartialPathResponse extends EVA.API.ResponseMessage {
    Pages : EVA.Makeup.RenderedPageDto[]; 
  }
  
  export class MakeupGetSiteConfiguration extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetSiteConfigurationResponse> {
    SiteID : number; // Int32
    LanguageID : string; 
  }
  
  export class MakeupGetSiteConfigurationResponse extends EVA.API.ResponseMessage {
    Configuration : any; 
  }
  
  export class MakeupGetSiteConfigurationSchema extends EVA.API.RequestMessageGeneric<EVA.Makeup.MakeupGetSiteConfigurationSchemaResponse> {
    SiteID : number; // Int32
  }
  
  export class MakeupGetSiteConfigurationSchemaResponse extends EVA.API.ResponseMessage {
    Schema : any; 
  }
  
  export class MakeupListBlocks extends EVA.API.PagedResultRequest<EVA.Makeup.MakeupListBlocksResponse> {
    Type : string; 
  }
  
  export class MakeupListBlocksResponse extends EVA.API.PagedResultResponse<EVA.Makeup.BlockDto> {
  }
  
  export class MakeupListBlockVersions extends EVA.API.PagedResultRequest<EVA.Makeup.MakeupListBlockVersionsResponse> {
    ID : string; 
  }
  
  export class MakeupListBlockVersionsResponse extends EVA.API.PagedResultResponse<EVA.Makeup.BlockVersionDto> {
  }
  
  export class MakeupListEvents extends EVA.API.PagedResultRequest<EVA.Makeup.MakeupListEventsResponse> {
    IsActive? : boolean; 
  }
  
  export class MakeupListEventsResponse extends EVA.API.PagedResultResponse<EVA.Makeup.EventDto> {
  }
  
  export class MakeupListMenus extends EVA.API.PagedResultRequest<EVA.Makeup.MakeupListMenusResponse> {
    LanguageID : string; 
  }
  
  export class MakeupListMenusResponse extends EVA.API.PagedResultResponse<EVA.Makeup.MenuDto> {
  }
  
  export class MakeupListPageVersions extends EVA.API.PagedResultRequest<EVA.Makeup.MakeupListPageVersionsResponse> {
    ID : string; 
    LanguageID : string; 
  }
  
  export class MakeupListPageVersionsResponse extends EVA.API.PagedResultResponse<EVA.Makeup.PageVersionDto> {
  }
  
  export class MakeupPageMapSection {
    Name : string; 
    Sections : EVA.Makeup.MakeupPageMapSection[]; 
    Description : string; 
    IsBase : boolean; 
    Pages : EVA.Makeup.MakeupPageMapSectionPage[]; 
  }
  
  export class MakeupPageMapSectionPage {
    ID : string; 
    Name : string; 
    Path : string; 
    IsBase : boolean; 
  }
  
  export class MakeupPublishBlockVersion extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    Version : number; // Int32
  }
  
  export class MakeupPublishPageVersion extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    LanguageID : string; 
    Version : number; // Int32
  }
  
  export class MakeupReplaceConfigurationProfile extends EVA.API.RequestMessageWithEmptyResponse {
    Configuration : EVA.Makeup.ConfigurationProfileDto; 
    LanguageID : string; 
  }
  
  export class MakeupReplaceMenu extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    Menu : EVA.Makeup.MenuDto; 
  }
  
  export class MakeupReplacePage extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string; 
    Page : EVA.Makeup.PageDto; 
  }
  
  export class MakeupReplaceSiteConfiguration extends EVA.API.RequestMessageWithEmptyResponse {
    SiteID : number; // Int32
    LanguageID : string; 
    Configuration : any; 
  }
  
  export class MakeupReplaceSiteConfigurationSchema extends EVA.API.RequestMessageWithEmptyResponse {
    SiteID : number; // Int32
    Schema : any; 
  }
  
  export class MakeupUpdateBlock extends EVA.API.RequestMessageWithEmptyResponse {
    Block : EVA.Makeup.BlockDto; 
  }
  
  export class MenuDto {
    ID : string; 
    Name : string; 
    LanguageID : string; 
    Types : EVA.Makeup.MenuTypeDto[]; 
  }
  
  export class MenuItemDto {
    Name : string; 
    Path : string; 
    ImageBlobID : string; 
    Items : EVA.Makeup.MenuItemDto[]; 
  }
  
  export class MenuTypeDto {
    Type : string; 
    Items : EVA.Makeup.MenuItemDto[]; 
  }
  
  export class MetaTagDto {
    Attribute : string; 
    Content : string; 
    Type : string; 
  }
  
  export class PageBlockDto implements EVA.Makeup.IPageBlock {
    ID : string; 
    Type : string; 
    Input : { [ key : string ] : EVA.Makeup.BlockInputDto }; 
    CssClasses : string[]; 
    CssStyles : string; 
    Name : string; 
    Content : string; 
    Template : string; 
    Width : string; 
    Height : string; 
    Version? : number; // Int32, nullable
  }
  
  export class PageDto {
    ID : string; 
    LanguageID : string; 
    Name : string; 
    Description : string; 
    Type : string; 
    SearchProductsRequest : EVA.Core.Services.SearchProducts; 
    Path : string; 
    Containers : EVA.Makeup.ContainerDto[]; 
    CssClasses : string[]; 
    MetaTags : EVA.Makeup.MetaTagDto[]; 
    Version : number; // Int32
    VersionDescription : string; 
    IsCurrent : boolean; 
    CssStyles : string; 
    StyleSheetBlobID : string; 
    Slug : string; 
    Blocks : EVA.Makeup.PageBlockDto[]; 
    Event : EVA.Makeup.EventDto; 
    EventID? : number; // Int32, nullable
    RequiresAuthentication : boolean; 
    RequiredFunctionality : string; 
  }
  
  export class PageVersionDto {
    ID : string; 
    Version : number; // Int32
    IsCurrent : boolean; 
    VersionDescription : string; 
  }
  
  export class PathContext {
    Path : string; 
    Parameters : EVA.Makeup.PathParameter[]; 
  }
  
  export class PathParameter {
    Key : string; 
    Value : any; 
  }
  
  export class ProductPropertyTypeMappingDto {
    Key : string; 
    ProductPropertyTypeID : string; 
  }
  
  export class RenderedPageDto {
    ID : string; 
    LanguageID : string; 
    Name : string; 
    Description : string; 
    Type : string; 
    SearchProductsRequest : EVA.Core.Services.SearchProducts; 
    Path : string; 
    Containers : EVA.Makeup.ContainerDto[]; 
    CssClasses : string[]; 
    MetaTags : EVA.Makeup.MetaTagDto[]; 
    StyleSheetBlobID : string; 
    Slug : string; 
    RequiresAuthentication : boolean; 
    RequiredFunctionality : string; 
  }
  
}