import { Accessibility, EmbedBehaviorProps } from '@fluentui/accessibility';
import * as PropTypes from 'prop-types';
import * as React from 'react';
import { UIComponentProps } from '../../utils';
import { VideoProps } from '../Video/Video';
import { BoxProps } from '../Box/Box';
import { ComponentEventHandler, ShorthandValue, FluentComponentStaticProps } from '../../types';
export interface EmbedSlotClassNames {
    control: string;
}
export interface EmbedProps extends UIComponentProps {
    /** Accessibility behavior if overridden by the user. */
    accessibility?: Accessibility<EmbedBehaviorProps>;
    /** Alternative text. */
    alt?: string;
    /** Corresponds to HTML title attribute. */
    title?: string;
    /** Whether the embedded object should be active. */
    active?: boolean;
    /** Whether the embedded object should start active. */
    defaultActive?: boolean;
    /** Shorthand for an control. */
    control?: ShorthandValue<BoxProps>;
    /** Shorthand for an embedded iframe. */
    iframe?: ShorthandValue<BoxProps>;
    /**
     * Event for request to change 'active' value.
     * @param event - React's original SyntheticEvent.
     * @param data - All props and proposed value.
     */
    onActiveChange?: ComponentEventHandler<EmbedProps>;
    /**
     * Called when is clicked.
     *
     * @param event - React's original SyntheticEvent.
     * @param data - All item props.
     */
    onClick?: ComponentEventHandler<EmbedProps>;
    /** Image source URL for when video isn't playing. */
    placeholder?: string;
    /** Shorthand for an embedded video. */
    video?: ShorthandValue<VideoProps>;
}
export declare const embedClassName = "ui-embed";
export declare const embedSlotClassNames: EmbedSlotClassNames;
export declare type EmbedStylesProps = Required<Pick<EmbedProps, 'active'>> & {
    iframeLoaded: boolean;
};
/**
 * An Embed displays content from external websites, like a post from external social network.
 *
 * @accessibility
 * A `placeholder` slot represents an [`Image`](/components/image/definition) component, please follow recommendations from its
 * accessibility section.
 */
export declare const Embed: (<TExtendedElementType extends React.ElementType<any> = "span">(props: React.RefAttributes<HTMLSpanElement> & Omit<import("@fluentui/react-bindings").PropsOfElement<TExtendedElementType>, "as" | keyof EmbedProps> & {
    as?: TExtendedElementType;
} & EmbedProps) => JSX.Element) & {
    propTypes?: React.WeakValidationMap<EmbedProps> & {
        as: React.Requireable<string | ((props: any, context?: any) => any) | (new (props: any, context?: any) => any)>;
    };
    contextTypes?: PropTypes.ValidationMap<any>;
    defaultProps?: Partial<EmbedProps & {
        as: "span";
    }>;
    displayName?: string;
    readonly __PRIVATE_PROPS?: React.RefAttributes<HTMLSpanElement> & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof React.HTMLAttributes<HTMLSpanElement>> & {
        ref?: React.Ref<HTMLSpanElement>;
    }, "as" | keyof EmbedProps> & {
        as?: "span";
    } & EmbedProps;
} & FluentComponentStaticProps<EmbedProps>;
