// @flow export type OnError = (e: any) => void export type OnOutput = (data: any) => void export type UpdateFunction

= (props: P) => any export type DestroyFunction = () => void export type Condition = (props: P) => R | void export type PixieInstance

= { update(props: P): any, destroy(): void } export type TamePixieInput = { onError: OnError, onOutput: OnOutput } export type TamePixie

= (input: TamePixieInput) => PixieInstance

export type PixieInput

= TamePixieInput & { nextProps(): Promise

, +props: P, waitFor(condition: Condition): Promise } export type WildPixie

= ( input: PixieInput

) => PixieInstance

| UpdateFunction