interface A {} interface B { prop: string, method(): string, [index: number]: string, new(): B }