declare module "cancan" { namespace CanCan { interface Option { instanceOf?: ((instance: any, model: any) => boolean) | undefined; createError?: (() => any) | undefined; } } class CanCan { constructor(options?: CanCan.Option); allow( model: any, actions: string | ReadonlyArray, targets: T | ReadonlyArray | string | ReadonlyArray, condition?: | object | ((performer: any, target: any, options?: any) => boolean) ): void; can(performer: any, action: string, target: any, options?: any): boolean; cannot(performer: any, action: string, target: any, options?: any): boolean; authorize(performer: any, action: string, target: any, options?: any): void; abilities: { model: any; action: string; target: any; }[]; } export = CanCan; }