/* tslint:disable */
/* eslint-disable */
/**
 * recraft.ai external api
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.0.1
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { mapValues } from '../runtime';
import type { TransformModel } from './TransformModel';
import {
    TransformModelFromJSON,
    TransformModelFromJSONTyped,
    TransformModelToJSON,
    TransformModelToJSONTyped,
} from './TransformModel';
import type { ImageStyle } from './ImageStyle';
import {
    ImageStyleFromJSON,
    ImageStyleFromJSONTyped,
    ImageStyleToJSON,
    ImageStyleToJSONTyped,
} from './ImageStyle';
import type { ImageSubStyle } from './ImageSubStyle';
import {
    ImageSubStyleFromJSON,
    ImageSubStyleFromJSONTyped,
    ImageSubStyleToJSON,
    ImageSubStyleToJSONTyped,
} from './ImageSubStyle';

/**
 * 
 * @export
 * @interface BasicStyle
 */
export interface BasicStyle {
    /**
     * 
     * @type {TransformModel}
     * @memberof BasicStyle
     */
    model: TransformModel;
    /**
     * 
     * @type {ImageStyle}
     * @memberof BasicStyle
     */
    style: ImageStyle;
    /**
     * 
     * @type {ImageSubStyle}
     * @memberof BasicStyle
     */
    substyle?: ImageSubStyle;
}



/**
 * Check if a given object implements the BasicStyle interface.
 */
export function instanceOfBasicStyle(value: object): value is BasicStyle {
    if (!('model' in value) || value['model'] === undefined) return false;
    if (!('style' in value) || value['style'] === undefined) return false;
    return true;
}

export function BasicStyleFromJSON(json: any): BasicStyle {
    return BasicStyleFromJSONTyped(json, false);
}

export function BasicStyleFromJSONTyped(json: any, ignoreDiscriminator: boolean): BasicStyle {
    if (json == null) {
        return json;
    }
    return {
        
        'model': TransformModelFromJSON(json['model']),
        'style': ImageStyleFromJSON(json['style']),
        'substyle': json['substyle'] == null ? undefined : ImageSubStyleFromJSON(json['substyle']),
    };
}

export function BasicStyleToJSON(json: any): BasicStyle {
    return BasicStyleToJSONTyped(json, false);
}

export function BasicStyleToJSONTyped(value?: BasicStyle | null, ignoreDiscriminator: boolean = false): any {
    if (value == null) {
        return value;
    }

    return {
        
        'model': TransformModelToJSON(value['model']),
        'style': ImageStyleToJSON(value['style']),
        'substyle': ImageSubStyleToJSON(value['substyle']),
    };
}

