import { BuiltinSimulatorHost } from './host'; import { BuiltinSimulatorRenderer } from './renderer'; export type MasterProvider = (master: BuiltinSimulatorHost) => any; export type RendererConsumer = (renderer: BuiltinSimulatorRenderer, data: T) => Promise; export default class ResourceConsumer { private consumer?; private emitter; private _data; private _providing?; private _consuming?; private _firstConsumed; private resolveFirst?; constructor(provider: () => T, consumer?: RendererConsumer); consume(consumerOrRenderer: BuiltinSimulatorRenderer | ((data: T) => any)): void; dispose(): void; waitFirstConsume(): Promise; }