import { FnTypeWithGeneric , ImAType } from './types' ; internal export class IShouldBeInternalClass { st : string ; } internal export interface IShouldBeInternalInterface { st : string ; } /**
 * An interface with a generic.
 */ export interface WithGen < T = number > { t : T ; } deprecated removeBy export interface AnotherInterface < T > { t : T ; } export class ExampleClass < T > implements AnotherInterface < T > { /**
     * This should not be exposed in the docs!
     */ private privateVar : string ; public component ? : React . ComponentType ; constructor ( public t ) { this . privateVar = 'hi' ; } param a arrowFn = ( a ) : ImAType => a ; param a getVar ( a ) { return this . privateVar ; } } export class CrazyClass < P extends ImAType = any > extends ExampleClass < WithGen < P > > { } /**
 * This is an example interface so we can see how it appears inside the API
 * documentation system.
 */ export interface ExampleInterface extends AnotherInterface < string > { /**
     * This gets a promise that resolves to a string.
     */ getAPromiseThatResolvesToString : ( ) => Promise < string > ; param t returns aFnWithGen : < T > ( t : T ) => void ; /**
     * Add coverage for this bug report: https://github.com/elastic/kibana/issues/107145
     */ anOptionalFn ? : ( foo : string ) => string ; /**
     * These are not coming back properly.
     */ aFn ( ) : void ; /**
     * This one is slightly different than the above `aFnWithGen`. The generic is part of the type, not the function (it's before the = sign).
     * Ideally, we can still capture the children.
     */ fnTypeWithGeneric : FnTypeWithGeneric < string > ; /**
     * Optional code path is different than others.
     */ fnTypeWithGenericThatIsOptional ? : FnTypeWithGeneric < string > ; } /**
 * An interface that has a react component.
 */ export interface IReturnAReactComponent { component : React . ComponentType ; }