import { StrictStyleOptions, StyleOptions } from 'botframework-webchat-api';
import { AdaptiveCard, GlobalSettings, HorizontalAlignment, HostConfig, TextSize, TextWeight, SerializationContext, Version } from 'adaptivecards';

/**
 * Adaptive Cards styling
 */
type AdaptiveCardsStyleOptions = {
    /** Adaptive Cards: Specify the maximum schema version supported by the Adaptive Card serializer. */
    adaptiveCardsParserMaxVersion?: string;
    /**
     * Adaptive Cards styling for 'emphasis' container style
     */
    cardEmphasisBackgroundColor?: string;
    /**
     * Adaptive Cards: background color of Adaptive Cards button with status of 'aria-pressed'
     */
    cardPushButtonBackgroundColor?: string;
    /**
     * Adaptive Cards: text color of Adaptive Cards button with status of 'aria-pressed'
     */
    cardPushButtonTextColor?: string;
    /**
     * Cards: Rich Cards
     * Enable title (and subtitle) wrapping
     */
    richCardWrapTitle?: boolean;
};
type StrictAdaptiveCardsStyleOptions = Required<AdaptiveCardsStyleOptions>;

type FullBundleStyleOptions = StyleOptions & AdaptiveCardsStyleOptions;
type StrictFullBundleStyleOptions = StrictStyleOptions & StrictAdaptiveCardsStyleOptions;

type AdaptiveCardsPackage = {
    AdaptiveCard: typeof AdaptiveCard;
    GlobalSettings: typeof GlobalSettings;
    HorizontalAlignment: typeof HorizontalAlignment;
    HostConfig: typeof HostConfig;
    TextSize: typeof TextSize;
    TextWeight: typeof TextWeight;
    SerializationContext: typeof SerializationContext;
    Version: typeof Version;
};

export type { AdaptiveCardsPackage as A, FullBundleStyleOptions as F, StrictFullBundleStyleOptions as S, AdaptiveCardsStyleOptions as a };
