// type PropsWithRef<P extends Record<string, any>> = P & { ref?: (e: any) => any };

class T {}

type ComponentTypes = 'preloadComponent' | 'component'

export class RenderContainer<P extends Record<string, any> = any> extends T {
  readonly props: Readonly<P> & Readonly<{ children?: FYGE.Container[] }>;

  dreamType: ComponentTypes
  isDidRendered: boolean

  constructor(props: Readonly<P> | P | Readonly<{ref?: (e: RenderContainer) => any} & P>) {
    super()
    this.props = props
  }

  didRendered() {

  }

  unMount() {
    
  }
  
  render(): any {

  }
}