/**
 * Commander Spellbook API
 * API for Commander Spellbook, the combo database engine for Magic: The Gathering
 *
 * The version of the OpenAPI document: 5.4.10
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { FeatureProducedInVariantSuggestion } from './FeatureProducedInVariantSuggestion.js';
import type { User } from './User.js';
import type { CardUsedInVariantSuggestion } from './CardUsedInVariantSuggestion.js';
import type { TemplateRequiredInVariantSuggestion } from './TemplateRequiredInVariantSuggestion.js';
import type { SuggestionStatusEnum } from './SuggestionStatusEnum.js';
/**
 *
 * @export
 * @interface VariantSuggestion
 */
export interface VariantSuggestion {
    /**
     *
     * @type {number}
     * @memberof VariantSuggestion
     */
    readonly id: number;
    /**
     * Suggestion status for editors
     *
     * * `N` - New
     * * `AD` - Awaiting Discussion
     * * `PA` - Pending Approval
     * * `A` - Accepted
     * * `R` - Rejected
     * @type {SuggestionStatusEnum}
     * @memberof VariantSuggestion
     */
    readonly status: SuggestionStatusEnum;
    /**
     *
     * @type {Array<CardUsedInVariantSuggestion>}
     * @memberof VariantSuggestion
     */
    uses: Array<CardUsedInVariantSuggestion>;
    /**
     *
     * @type {Array<TemplateRequiredInVariantSuggestion>}
     * @memberof VariantSuggestion
     */
    requires: Array<TemplateRequiredInVariantSuggestion>;
    /**
     *
     * @type {Array<FeatureProducedInVariantSuggestion>}
     * @memberof VariantSuggestion
     */
    produces: Array<FeatureProducedInVariantSuggestion>;
    /**
     * If this suggestion is a variant of an existing one, link it here.
     * @type {string}
     * @memberof VariantSuggestion
     */
    variantOf: string | null;
    /**
     * Mana needed for this combo. Use the {1}{W}{U}{B}{R}{G}{B/P}... format.
     * @type {string}
     * @memberof VariantSuggestion
     */
    manaNeeded: string;
    /**
     * Easily achievable prerequisites for this combo.
     * @type {string}
     * @memberof VariantSuggestion
     */
    easyPrerequisites: string;
    /**
     * Notable prerequisites for this combo.
     * @type {string}
     * @memberof VariantSuggestion
     */
    notablePrerequisites: string;
    /**
     * Long description, in steps
     * @type {string}
     * @memberof VariantSuggestion
     */
    description: string;
    /**
     * Is this combo a spoiler?
     * @type {boolean}
     * @memberof VariantSuggestion
     */
    spoiler: boolean;
    /**
     * Comment written by the user that suggested this
     * @type {string}
     * @memberof VariantSuggestion
     */
    comment: string;
    /**
     *
     * @type {User}
     * @memberof VariantSuggestion
     */
    readonly suggestedBy: User;
    /**
     *
     * @type {Date}
     * @memberof VariantSuggestion
     */
    readonly created: Date;
}
/**
 * Check if a given object implements the VariantSuggestion interface.
 */
export declare function instanceOfVariantSuggestion(value: object): value is VariantSuggestion;
export declare function VariantSuggestionFromJSON(json: any): VariantSuggestion;
export declare function VariantSuggestionFromJSONTyped(json: any, ignoreDiscriminator: boolean): VariantSuggestion;
export declare function VariantSuggestionToJSON(json: any): VariantSuggestion;
export declare function VariantSuggestionToJSONTyped(value?: Omit<VariantSuggestion, 'id' | 'status' | 'suggestedBy' | 'created'> | null, ignoreDiscriminator?: boolean): any;
