/** @jsx jsx */
import type { RefObject } from 'react';
import React from 'react';
import { jsx } from '@emotion/react';
import type { RichMediaLayout as MediaSingleLayout } from '@atlaskit/adf-schema';
/**
 * Calculates the image width for non-resized images.
 *
 * If an image has not been resized using the pctWidth attribute,
 * then an image in wide or full-width can not be wider than the image's
 * original width.
 */
export declare function calcLegacyWidth(layout: MediaSingleLayout, width: number, containerWidth?: number, fullWidthMode?: boolean, isResized?: boolean, isInsideOfInlineExtension?: boolean): string;
/**
 * Calculates the image width for non-resized images.
 *
 * If an image has not been resized using the pctWidth attribute,
 * then an image in wide or full-width can not be wider than the image's
 * original width.
 */
export declare function calcLegacyWidthForInline(layout: MediaSingleLayout, width: number, containerWidth?: number, fullWidthMode?: boolean, isResized?: boolean): string;
/**
 * Calculates the image width for previously resized images.
 *
 * Wide and full-width images are always that size (960px and 100%); there is
 * no distinction between max-width and width.
 */
export declare function calcResizedWidth(layout: MediaSingleLayout, width: number, containerWidth?: number): any;
export interface MediaSingleWrapperProps {
    containerWidth?: number;
    fullWidthMode?: boolean;
    isResized?: boolean;
    layout: MediaSingleLayout;
    /**
     * @private
     * @deprecated Use {@link MediaSingleWrapperProps["mediaSingleWidth"]} instead.
     * Cleanup ticket: https://product-fabric.atlassian.net/browse/ED-19076
     */
    pctWidth?: number;
    mediaSingleWidth?: number;
    width?: number;
    innerRef?: ((elem: HTMLDivElement) => void) | RefObject<HTMLDivElement>;
    isExtendedResizeExperienceOn?: boolean;
    isNestedNode?: boolean;
    isInsideOfInlineExtension?: boolean;
}
/**
 * Can't use `.attrs` to handle highly dynamic styles because we are still
 * supporting `styled-components` v1.
 */
export declare const MediaSingleDimensionHelper: ({ containerWidth, fullWidthMode, isResized, layout, mediaSingleWidth, width, isExtendedResizeExperienceOn, isNestedNode, isInsideOfInlineExtension, }: MediaSingleWrapperProps) => import("@emotion/react").SerializedStyles;
export interface MediaWrapperProps {
    paddingBottom?: string;
    height?: number;
    hasFallbackContainer?: boolean;
}
export declare const mediaWrapperStyle: (props: MediaWrapperProps) => import("@emotion/react").SerializedStyles;
export declare const MediaWrapper: {
    ({ children, ...rest }: React.HTMLAttributes<HTMLDivElement> & MediaWrapperProps): jsx.JSX.Element;
    displayName: string;
};
type MediaBorderGapFillerProps = {
    borderColor: string;
};
export declare const MediaBorderGapFiller: ({ borderColor, }: MediaBorderGapFillerProps) => jsx.JSX.Element;
export {};
