export interface AppSettings {
    /** The state of the component */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** The app global settings */
    settings?: Record<string, any> | null;
    /** Translatable textual assets - not using a collection because this type only the get flow (which should return a single value) */
    translations?: Record<string, string>;
}
/** The state of the settings (Saved or Published) */
export declare enum State {
    /** Not relevant */
    NR = "NR",
    SAVED = "SAVED",
    PUBLISHED = "PUBLISHED"
}
/** The host in which the settings are displayed */
export declare enum Host {
    NA = "NA",
    VIEWER = "VIEWER",
    BUSINESS_MANAGER = "BUSINESS_MANAGER",
    ONE_APP = "ONE_APP"
}
export interface SetComponentSettingsRequest {
    /**
     * The component Id
     * @maxLength 36
     */
    componentId: string | null;
    /** The data we'd like to store for this component */
    settings?: Record<string, any> | null;
    /** The state to set in. ** THIS IS A DEPRECATED FIELD, PLEASE USE THE "states" FIELD ** */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states to set in */
    states?: State[];
}
/** The translated language that contains the key and its translations */
export interface TranslatedLanguage {
    /** The key of the translations' language */
    languageKey?: LanguageKey;
    /** Key-value pair mapping of textual assets */
    translations?: Record<string, string>;
}
/** The language key of the saved multilingual data */
export interface LanguageKey {
    /** e.g. en */
    languageCode?: string;
    /** e.g. us */
    regionCode?: string;
    /** default: '' */
    scriptVariant?: string;
}
export interface SetComponentSettingsResponse {
    /** Echo of the component settings */
    settings?: Record<string, any> | null;
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states this was set in */
    states?: State[];
}
export interface SetComponentSettingsForMigrationRequest {
    /**
     * The component Id
     * @maxLength 36
     */
    componentId?: string | null;
    /** The data we'd like to store for this component */
    settings?: Record<string, any> | null;
    /** The state to set in. ** THIS IS A DEPRECATED FIELD, PLEASE USE THE "states" FIELD ** */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states to set in */
    states?: State[];
    /**
     * The appDefId for migration
     * @format GUID
     */
    appDefId: string;
    /**
     * The instanceId for migration (msid)
     * @format GUID
     */
    instanceId: string;
}
export interface SetComponentSettingsForMigrationResponse {
    /** Echo of the component settings */
    settings?: Record<string, any> | null;
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states this was set in */
    states?: State[];
}
export interface GetComponentSettingsRequest {
    /**
     * The component we want data for. Component ids can be from the site or oneApp
     * @minLength 1
     * @maxLength 36
     */
    componentId: string | null;
    /** The state of the component */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** The language key of the translation (allow filtering translations explicitly) */
    languageKey?: LanguageKey;
    /** Whether it is critical to get Global Settings as well */
    includeGlobalSettings?: boolean;
}
export interface GetComponentSettingsResponse {
    /** Component settings for the requested component id */
    settings?: Record<string, any> | null;
    /** The data state of the response */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** based on x-wix-language or fallback */
    translations?: Record<string, string>;
    /** Optional. The global app settings */
    globalSettings?: AppSettings;
}
export interface BulkGetComponentSettingsRequest {
    /**
     * The component we want data for. Component ids can be from the site or oneApp
     * @minLength 1
     * @maxLength 36
     * @minSize 1
     * @maxSize 100
     */
    componentIds?: string[];
    /** The state of the component */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** The language key of the translation (allow filtering translations explicitly) */
    languageKey?: LanguageKey;
}
export interface BulkGetComponentSettingsResponse {
    componentSettings?: ComponentSettings[];
}
export interface ComponentSettings {
    /**
     * @minLength 1
     * @maxLength 36
     */
    componentId?: string;
    /** Component settings for the requested component id */
    settings?: Record<string, any> | null;
    /** The data state of the response */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** based on x-wix-language or fallback */
    translations?: Record<string, string>;
}
export interface SetGlobalSettingsRequest {
    /** The global settings for the app */
    settings?: Record<string, any> | null;
    /** Any components we would like to set */
    componentSettings?: SetComponentSettingsItem[];
    /** The state this is set in. ** THIS IS A DEPRECATED FIELD, PLEASE USE THE "states" FIELD ** */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states this was set in */
    states?: State[];
}
export interface SetComponentSettingsItem {
    /** The state of the component */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /**
     * The component we want data for. Component ids can be from the site or oneApp
     * @minLength 1
     * @maxLength 36
     */
    componentId?: string | null;
    /** The component settings */
    settings?: Record<string, any> | null;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
}
export interface SetGlobalSettingsResponse {
    /** The data we have not for the App */
    settings?: Record<string, any> | null;
    /** The data we have for the components */
    componentSettings?: SetComponentSettingsItem[];
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states this was set in */
    states?: State[];
}
export interface GetGlobalSettingsRequest {
    /** The requested state, default is published */
    state?: State;
    /** Allow to filter by host to get only components for that host */
    host?: Host;
    /** If component settings data should also be returned */
    includeComponentSettings?: boolean;
    /** The language key of the translation (allow filtering translations explicitly) */
    languageKey?: LanguageKey;
}
export interface GetGlobalSettingsResponse {
    /** The state of the app */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** The global app settings */
    settings?: Record<string, any> | null;
    /** Optional. All components listed. may include components from the site or oneApp */
    componentSettings?: GetComponentSettingsItem[];
    /** based on x-wix-language or fallback */
    translations?: Record<string, string>;
}
export interface GetComponentSettingsItem {
    /** The state of the component */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /**
     * The component we want data for. Component ids can be from the site or oneApp
     * @minLength 1
     * @maxLength 36
     */
    componentId?: string | null;
    /** The component settings */
    settings?: Record<string, any> | null;
    /** Translatable textual assets - not using a collection because this type only the get flow (which should return a single value) */
    translations?: Record<string, string>;
}
export interface SetGlobalSettingsForMigrationRequest {
    /** The global settings for the app */
    settings?: Record<string, any> | null;
    /** Any components we would like to set */
    componentSettings?: SetComponentSettingsItem[];
    /** The state this is set in. ** THIS IS A DEPRECATED FIELD, PLEASE USE THE "states" FIELD ** */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states this was set in */
    states?: State[];
    /**
     * The appDefId for migration
     * @format GUID
     */
    appDefId: string;
    /**
     * The instanceId for migration (msid)
     * @format GUID
     */
    instanceId: string;
}
export interface SetGlobalSettingsForMigrationResponse {
    /** The data we have not for the App */
    settings?: Record<string, any> | null;
    /** The data we have for the components */
    componentSettings?: SetComponentSettingsItem[];
    /** Where this data is relevant */
    host?: Host;
    /** Translatable textual assets (pass empty key as default) */
    translations?: TranslatedLanguage[];
    /** The states this was set in */
    states?: State[];
}
export interface GetGlobalSettingsForMigrationRequest {
    /** The requested state, default is published */
    state?: State;
    /** Allow to filter by host to get only components for that host */
    host?: Host;
    /** If component settings data should also be returned */
    includeComponentSettings?: boolean;
    /** The language key of the translation (allow filtering translations explicitly) */
    languageKey?: LanguageKey;
    /**
     * The appDefId for migration
     * @format GUID
     */
    appDefId: string;
    /**
     * The instanceId for migration (msid)
     * @format GUID
     */
    instanceId: string;
}
export interface GetGlobalSettingsForMigrationResponse {
    /** The state of the app */
    state?: State;
    /** Where this data is relevant */
    host?: Host;
    /** The global app settings */
    settings?: Record<string, any> | null;
    /** Optional. All components listed. may include components from the site or oneApp */
    componentSettings?: GetComponentSettingsItem[];
    /** Translatable textual assets (returns unfiltered global translations when languageKey is omitted) */
    translations?: TranslatedLanguage[];
}
export interface GetRequest {
    /**
     * id of app-scoped settings
     * @format GUID
     */
    externalAppId?: string | null;
    /**
     * id of component-scoped settings
     * @format GUID
     */
    externalComponentId?: string | null;
    /** desired fields to retrieve on either GetResponse.app_settings or GetResponse.component_settings */
    fields?: string[];
}
export interface GetResponse {
    /** app-scoped settings; */
    appSettings?: Record<string, any> | null;
    /** component-scoped settings; */
    componentSettings?: Record<string, any> | null;
}
export interface SetRequest {
    /**
     * id of settings snapshot
     * @format GUID
     */
    externalId: string | null;
    /** scope of settings to store */
    scope: Scope;
    /** settings themselves; */
    data: Record<string, any> | null;
}
/** scope of settings when creating/updating; */
export declare enum Scope {
    /** multiple instances of a tpa can share same settings; */
    APP = "APP",
    /** scoped to a single component of an app; */
    COMPONENT = "COMPONENT"
}
export interface SetResponse {
}
export interface UpdateRequest {
    /**
     * id of settings snapshot
     * @format GUID
     */
    externalId: string | null;
    /** scope of settings to update */
    scope: Scope;
    /** changed fields in provided data */
    fields: string[];
    /** data itself */
    data: Record<string, any> | null;
}
export interface UpdateResponse {
    /** new if of stored settings snapshot */
    newExternalId?: string | null;
}
