/**
 * Streaming Availability API
 * Streaming Availability API allows getting streaming availability information of movies and series; and querying the list of available shows on streaming services such as Netflix, Disney+, Apple TV, Max and Hulu across 59 countries!
 *
 * The version of the OpenAPI document: 3.3.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 type { Genre } from './Genre';
import type { Season } from './Season';
import type { SeriesStatus } from './SeriesStatus';
import type { StreamingOption } from './StreamingOption';
/**
 * Details of a show.
 * @export
 * @interface Show
 */
export interface Show {
    /**
     * Type of the show.
     * @type {string}
     * @memberof Show
     */
    type: ShowTypeEnum;
    /**
     * Title of the show.
     * @type {string}
     * @memberof Show
     */
    title: string;
    /**
     * The year that the movie was released.
     * @type {number}
     * @memberof Show
     */
    year?: number;
    /**
     * The first year that the series aired.
     * @type {number}
     * @memberof Show
     */
    firstAirYear?: number;
    /**
     * The last year that the series aired.
     * @type {number}
     * @memberof Show
     */
    lastAirYear?: number;
    /**
     * [IMDb](https://www.imdb.com/) ID of the show.
     * @type {string}
     * @memberof Show
     */
    imdbId: string;
    /**
     * [TMDb](https://www.themoviedb.org/) ID of the show.
     * @type {number}
     * @memberof Show
     */
    tmdbId: number;
    /**
     * Original title of the show.
     * @type {string}
     * @memberof Show
     */
    originalTitle: string;
    /**
     * Array of the genres associated with the show.
     * @type {Array<Genre>}
     * @memberof Show
     */
    genres: Array<Genre>;
    /**
     * Array of the directors of the movie.
     * @type {Array<string>}
     * @memberof Show
     */
    directors?: Array<string>;
    /**
     * Array of the creators of the series.
     * @type {Array<string>}
     * @memberof Show
     */
    creators?: Array<string>;
    /**
     *
     * @type {SeriesStatus}
     * @memberof Show
     */
    status?: SeriesStatus;
    /**
     * Number of seasons that are either available or announced.
     * @type {number}
     * @memberof Show
     */
    seasonCount?: number;
    /**
     * Number of episodes that are either available or announced.
     * @type {number}
     * @memberof Show
     */
    episodeCount?: number;
    /**
     * Country to streaming availability info mapping of a show.
     * @type {{ [key: string]: Array<StreamingOption>; }}
     * @memberof Show
     */
    streamingInfo: {
        [key: string]: Array<StreamingOption>;
    };
    /**
     *
     * @type {Array<Season>}
     * @memberof Show
     */
    seasons?: Array<Season>;
}
/**
 * @export
 */
export declare const ShowTypeEnum: {
    readonly Movie: "movie";
    readonly Series: "series";
};
export type ShowTypeEnum = typeof ShowTypeEnum[keyof typeof ShowTypeEnum];
/**
 * Check if a given object implements the Show interface.
 */
export declare function instanceOfShow(value: object): boolean;
export declare function ShowFromJSON(json: any): Show;
export declare function ShowFromJSONTyped(json: any, ignoreDiscriminator: boolean): Show;
export declare function ShowToJSON(value?: Show | null): any;
