export function getBuiltInProps<P>() : BuiltInPropsDefinitionType<P> { return { window: { type: 'object', sendToChild: false, required: false, allowDelegate: true, validate({ value } : { value : CrossDomainWindowType | ProxyWindow }) { if (!isWindow(value) && !ProxyWindow.isProxyWindow(value)) { throw new Error(`Expected Window or ProxyWindow`); } }, decorate({ value } : { value : CrossDomainWindowType | ProxyWindow }) : ProxyWindow { return toProxyWindow(value); } }, timeout: { type: 'number', required: false, sendToChild: false }, close: { type: 'function', required: false, sendToChild: false, childDecorate: ({ close }) => close }, focus: { type: 'function', required: false, sendToChild: false, childDecorate: ({ focus }) => focus }, resize: { type: 'function', required: false, sendToChild: false, childDecorate: ({ resize }) => resize }, cspNonce: { type: 'string', required: false }, getParent: { type: 'function', required: false, sendToChild: false, childDecorate: ({ getParent }) => getParent }, getParentDomain: { type: 'function', required: false, sendToChild: false, childDecorate: ({ getParentDomain }) => getParentDomain }, onDisplay: { type: 'function', required: false, sendToChild: false, allowDelegate: true, default: defaultNoop, decorate: decorateOnce }, onRendered: { type: 'function', required: false, sendToChild: false, default: defaultNoop, decorate: decorateOnce }, onRender: { type: 'function', required: false, sendToChild: false, default: defaultNoop, decorate: decorateOnce }, onClose: { type: 'function', required: false, sendToChild: false, allowDelegate: true, default: defaultNoop, decorate: decorateOnce }, onError: { type: 'function', required: false, sendToChild: false, childDecorate: ({ onError }) => onError }, onProps: { type: 'function', required: false, sendToChild: false, default: defaultNoop, childDecorate: ({ onProps }) => onProps } }; }
static isProxyWindow(obj : CrossDomainWindowType | ProxyWindow) : boolean { // $FlowFixMe return Boolean(obj && !isWindow(obj) && obj.isProxyWindow); }