export declare type Platform = 'ActionsOnGoogle' | 'Alexa' | 'Bixby' | 'Siri';
export declare type ManifestFormat = 1;
export declare type PackageFormat = 1;
export declare type LocaleContentFormat = 1;
export declare const MANIFEST_FILE_NAME = "jargon-manifest.json";
export interface ReleaseManifestV1 {
    manifestFormat: ManifestFormat;
    packageFormat: PackageFormat;
    projectID?: string;
    releaseID?: string;
    generated?: Date;
    contentInterfaceID?: string;
    supportContentInterfaceIDs?: string[];
    locales: string[];
    fallbackLocales?: Record<string, string[]>;
}
export declare function isReleaseManifest(m: any): m is ReleaseManifestV1;
export interface LocaleContentMetadata {
    format: LocaleContentFormat;
    locale: string;
}
export interface LocaleContentV1 {
    __jmd: LocaleContentMetadata;
    responses?: Record<string, ResponseContent>;
    strings?: Record<string, StringContent>;
    objects?: Record<string, ObjectContent>;
}
export declare function isLocaleContentV1(c: any): c is LocaleContentV1;
export interface VariadicContent<T extends Variant, CM extends ContentMetadata = ContentMetadata> {
    __jmd?: CM;
    variants: VariantRecord<T>;
}
export interface ObjectContent extends VariadicContent<ObjectVariant> {
}
export interface ResponseContent extends VariadicContent<ResponseVariant> {
}
export interface StringContent extends VariadicContent<StringVariant> {
}
export interface ContentMetadata {
}
export interface Variant {
    __jmd?: VariantMetadata;
}
export interface VariantMetadata {
    /** If present, the variant is not eligible for the listed platforms. Ignored if platforms is set. */
    excludedPlatforms?: [Platform];
    /** If present, the variant is only eligible for the listed platforms */
    platforms?: [Platform];
}
export interface VariantRecord<T extends Variant> extends Record<string, T> {
}
export interface ResponseVariant extends Variant {
    speech?: StringResource;
    reprompt?: StringResource;
    alexaCard?: AlexaCardResource;
    alexaDirectives?: Record<string, AlexaDirectiveResource>;
    googleCard?: GoogleCardResource;
    googleSuggestions?: GoogleSuggestionsResource;
    googleMediaObject?: GoogleMediaObjectResource;
}
export declare const ResponseVariantStringResources: string[];
export declare type StringVariant = Variant & StringResource;
export declare type ObjectVariant = Variant & ObjectResource;
export declare function isResponseVariant(rv: any): rv is ResponseVariant;
export interface Resource<T, RM extends ResourceMetadata = ResourceMetadata> {
    __jmd?: RM;
    content: T;
}
export interface ResourceMetadata {
}
export declare type StringFormat = 'ssml' | 'plain' | 'apl' | 'html';
export interface StringResourceMetadata extends ResourceMetadata {
    format?: StringFormat;
}
export interface StringResource extends Resource<string, StringResourceMetadata> {
}
export interface ObjectResourceMetadata extends ResourceMetadata {
}
export interface ObjectResource extends Resource<object, ObjectResourceMetadata> {
}
export declare type AlexaCardType = 'Simple' | 'Standard';
export declare type AlexaCard = AlexaSimpleCard | AlexaStandardCard;
export interface AlexaSimpleCard {
    type: 'Simple';
    title: string;
    content: string;
}
export interface AlexaStandardCard {
    type: 'Standard';
    title: string;
    text: string;
    image?: AlexaCardImages;
}
export interface AlexaCardImages {
    smallImageUrl?: string;
    largeImageUrl?: string;
}
export interface AlexaCardResourceMetadata extends ResourceMetadata {
}
export interface AlexaCardResource extends Resource<AlexaCard, AlexaCardResourceMetadata> {
}
export interface GoogleCard {
    title?: string;
    subtitle?: string;
    text?: string;
    image?: GoogleCardImage;
    button?: GoogleCardButtons;
}
export interface GoogleCardImage {
    imageUrl?: string;
    imageAlt?: string;
}
export interface GoogleCardButtons {
    buttonTitle?: string;
    buttonUrl?: string;
}
export interface GoogleCardResourceMetadata extends ResourceMetadata {
}
export interface GoogleCardResource extends Resource<GoogleCard, GoogleCardResourceMetadata> {
}
export interface GoogleMediaObject {
    url: string;
    name?: string;
    description?: string;
    imageOrIcon?: GoogleMediaObjectImageOrIcon;
}
export interface GoogleMediaObjectImageOrIcon {
    type: 'Image' | 'Icon';
    url: string;
    alt: string;
}
export interface GoogleMediaObjectResourceMetadata extends ResourceMetadata {
}
export interface GoogleMediaObjectResource extends Resource<GoogleMediaObject, GoogleMediaObjectResourceMetadata> {
}
export interface GoogleSuggestion {
    chip: string;
    url?: string;
}
export interface AlexaDirectiveResourceMetadata extends ResourceMetadata {
}
export interface AlexaDirectiveResource extends Resource<object, AlexaDirectiveResourceMetadata> {
}
export interface GoogleSuggestionsResourceMetadata extends ResourceMetadata {
}
export interface GoogleSuggestionsResource extends Resource<GoogleSuggestion[], GoogleSuggestionsResourceMetadata> {
}
