/**
 * Copyright (c) Haiku 2016-2018. All rights reserved.
 */
import { BytecodeOptions, HaikuBytecode } from '../../api/HaikuBytecode';
import { ComponentFactory } from './../../HaikuContext';
export interface DOMAdapter {
    (bytecode: HaikuBytecode, config?: BytecodeOptions, safeWindow?: Window): ComponentFactory;
    defineOnWindow?: () => void;
}
export declare interface AdaptedScreen extends Screen {
    availLeft: number;
    orientation: {
        angle: number;
        type: string;
    };
}
export declare interface AdaptedDocument extends Document {
    contentType: string;
    documentURI: string;
    fullscreen: boolean;
}
export declare interface AdaptedWindow extends Window {
    HaikuResolve?: (playerVersion: string) => DOMAdapter | undefined;
    HaikuCore?: {
        [key in string]: DOMAdapter;
    };
    mixpanel?: any;
    screen: AdaptedScreen;
    document: AdaptedDocument;
}
/**
 * Example ways in which the export of this module is invoked:
 *
 * // via embed snippet
 * window.HaikuPlayer['2.0.125'](require('./code/main/code.js')) // #LEGACY
 * window.HaikuCore['2.0.125'](require('./code/main/code.js'))
 *
 * // via module require
 * var HaikuDOMAdapter = require('@haiku/core/dom')
 * module.exports = HaikuDOMAdapter(require('./code/main/code.js'))
 */
/**
 * @function HaikuDOMAdapter
 * @description Given a bytecode object, return a factory function which can create a DOM-playable component.
 */
declare const HaikuDOMAdapter: DOMAdapter;
export default HaikuDOMAdapter;
