type DecimalPlaces = number;

type DeepPartial<T> = T extends object ? {
    [P in keyof T]?: DeepPartial<T[P]>;
} : T;

type Media = string;

interface MediaSpecificParameters {
    content: Content;
    media: Media;
}

type ContentWidth = number | 'device-width';
type ContentInitialScale = number;
type ContentMinWidth = number;
type ContentMaxWidth = number;
interface Content {
    width: ContentWidth;
    initialScale: ContentInitialScale;
    minWidth: ContentMinWidth;
    maxWidth: ContentMaxWidth;
    [key: string]: string | number;
}

type UnscaledComputing = boolean;

interface GlobalParameters {
    unscaledComputing: UnscaledComputing;
    decimalPlaces: DecimalPlaces;
}

declare const setParameters: (partialMediaSpecificParametersList: DeepPartial<MediaSpecificParameters>[], partialGlobalParameters?: Partial<GlobalParameters>) => void;
declare const setContent: (partialContent: Partial<Content>) => void;
/**
 * - Merge content properties of all objects in internalPartialMediaSpecificParametersList variable and return it
 * - Feature assuming that media properties are not used
 * @deprecated
 * */
declare const getContent: () => Content;
declare const updateReference: () => void;
/**
 * - For compatibility with v1
 * @deprecated
 */
declare class ViewportExtra {
    constructor(partialContentOrContentMinWidth: Partial<Content> | ContentMinWidth);
    static setParameters: (partialMediaSpecificParametersList: DeepPartial<MediaSpecificParameters>[], partialGlobalParameters?: Partial<GlobalParameters>) => void;
    static setContent: (partialContent: Partial<Content>) => void;
    static getContent: () => Content;
    static updateReference: () => void;
}

export { ViewportExtra as default, getContent, setContent, setParameters, updateReference };
