import { AddonData, AddonDataScheme, SchemeFieldType } from './addons'; export interface ConfigurationScheme extends AddonData { Name: string; Fields: ConfigurationFields; SyncData: AddonDataScheme['SyncData']; AddonUUID: string; ExportRelation?: ConfigurationExportRelation; ImportRelation?: ConfigurationImportRelation; } interface ConfigurationExportRelation { AddonRelativeURL?: string; InitRelativeURL?: string; } interface ConfigurationImportRelation extends ConfigurationExportRelation { MappingRelativeURL?: string; FixRelativeURL?: string; } interface ConfigurationFields { [key: string]: { Type: SchemeFieldType; PerProfile?: boolean; }; } export interface Draft extends AddonData { AddonUUID: string; ConfigurationSchemaName: string; Description: string; PublishedVersion?: string; Data: DraftData; Profiles: ConfigurationsProfile[]; Name: string; Dirty?: boolean; } export interface DraftData { [FieldID: string]: any; } export interface ConfigurationsProfile { Key: string; Data: DraftData; } export interface Version extends AddonData { Description: string; Draft: string; State: VersionState; AddonUUID: string; ConfigurationSchemaName: string; } export interface VersionState { Data: DraftData; Profiles: ConfigurationsProfile[]; } export interface ConfigurationObject extends AddonData { ConfigurationSchemeName: string; Draft: string; Version: string; Profile: string; Data: DraftData; AddonUUID: string; } export interface DraftOf extends Draft { Data: Partial; Profiles: { Key: string; Data: Partial; }[]; } export interface ConfigurationObjectOf extends ConfigurationObject { Data: T; } export {};