/// import { EventEmitter } from 'events'; import { argumentDecorator } from '.'; export declare const TestBed: TestBedInterface; export declare function getInitTestBedFunction(): () => void; export interface FixtureOptions { declarations?: unknown[]; imports?: unknown[]; inputs?: string[]; outputs?: string[]; events?: string[]; } export declare function fixture(component: Type, options?: FixtureOptions): argumentDecorator; export declare function component(component: Type): argumentDecorator; type ANY = any; type AFunction = Function; export declare function createFixture(component: Type, options: FixtureOptions): SodaFixture; export declare function addEvents(...names: string[]): void; export declare function createComponent(component: Type): T; export interface TestBedInterface { get platform(): PlatformRef; get ngModule(): Type | Type[]; initTestEnvironment(ngModule: Type | Type[], platform: PlatformRef, options?: TestEnvironmentOptions): void; resetTestEnvironment(): void; resetTestingModule(): TestBedInterface; configureCompiler(config: { providers?: ANY[]; useJit?: boolean; }): void; configureTestingModule(moduleDef: TestModuleMetadata): TestBedInterface; compileComponents(): Promise; inject(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T; inject(token: ProviderToken, notFoundValue: null, flags?: InjectFlags): T | null; /** @deprecated from v9.0.0 use TestBed.inject */ get(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): ANY; /** @deprecated from v9.0.0 use TestBed.inject */ get(token: ANY, notFoundValue?: ANY): ANY; execute(tokens: ANY[], fn: AFunction, context?: ANY): ANY; overrideModule(ngModule: Type, override: MetadataOverride): TestBedInterface; overrideComponent(component: Type, override: MetadataOverride): TestBedInterface; overrideDirective(directive: Type, override: MetadataOverride): TestBedInterface; overridePipe(pipe: Type, override: MetadataOverride): TestBedInterface; overrideTemplate(component: Type, template: string): TestBedInterface; overrideProvider(token: ANY, provider: { useFactory: AFunction; deps: ANY[]; }): TestBedInterface; overrideProvider(token: ANY, provider: { useValue: ANY; }): TestBedInterface; overrideProvider(token: ANY, provider: { useFactory?: AFunction; useValue?: ANY; deps?: ANY[]; }): TestBedInterface; overrideTemplateUsingTestingModule(component: Type, template: string): TestBedInterface; createComponent(component: Type): ComponentFixture; } export interface ComponentFixture { ngZone: NgZone | null; debugElement: DET; componentInstance: T; nativeElement: ANY; detectChanges(checkNoChanges?: boolean): void; checkNoChanges(): void; autoDetectChanges(autoDetect?: boolean): void; isStable(): boolean; whenStable(): Promise; whenRenderingDone(): Promise; destroy(): void; } export interface CommonEvents { click(eventObj?: PointerEvent): void; input(eventObj?: InputEvent): void; ngModelChange(text: string): void; } export interface SodaFixture extends ComponentFixture> { queryByCss(selector: string): SodaDebugElement; get inputs(): { [key: string]: ANY; }; get events(): EventEmitter; } export interface ComponentRef { setInput(name: string, value: unknown): void; get location(): ElementRef; get injector(): Injector; get instance(): C; get hostView(): ViewRef; get changeDetectorRef(): ChangeDetectorRef; get componentType(): Type; destroy(): void; onDestroy(callback: AFunction): void; } export interface NgZone { readonly hasPendingMacrotasks: boolean; readonly hasPendingMicrotasks: boolean; readonly isStable: boolean; readonly onUnstable: EventEmitter; readonly onMicrotaskEmpty: EventEmitter; readonly onStable: EventEmitter; readonly onError: EventEmitter; run(fn: (...args: ANY[]) => T, applyThis?: ANY, applyArgs?: ANY[]): T; runTask(fn: (...args: ANY[]) => T, applyThis?: ANY, applyArgs?: ANY[], name?: string): T; runGuarded(fn: (...args: ANY[]) => T, applyThis?: ANY, applyArgs?: ANY[]): T; runOutsideAngular(fn: (...args: ANY[]) => T): T; } interface DebugElementBase extends DebugNode { get nativeElement(): HTMLElement; get name(): string; get properties(): { [key: string]: ANY; }; get attributes(): { [key: string]: string | null; }; get styles(): { [key: string]: string | null; }; get classes(): { [key: string]: boolean; }; get childNodes(): DebugNode[]; get children(): DET[]; } export interface DebugElement extends DebugElementBase { query(predicate: Predicate): DebugElement; queryAll(predicate: Predicate): DebugElement[]; queryAllNodes(predicate: Predicate>): DebugNode[]; triggerEventHandler(eventName: string, eventObj?: unknown): void; } export interface SodaDebugElement extends DebugElementBase { text: string; query: { by: { css(selector: string): SodaDebugElement; }; }; queryAll: { by: { css(selector: string): SodaDebugElement[]; }; }; queryAllNodes: { by: { directive(type: Type): DebugNode>[]; all(): DebugNode>[]; }; }; triggerEventHandler: E; } export interface ElementRef { nativeElement: T; } export interface ChangeDetectorRef { markForCheck(): void; detach(): void; detectChanges(): void; checkNoChanges(): void; reattach(): void; } export interface Injector { get(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T; get(token: ANY, notFoundValue?: ANY): ANY; } export interface ViewRef extends ChangeDetectorRef { destroy(): void; get destroyed(): boolean; onDestroy(callback: AFunction): ANY; } export interface DebugNode { readonly nativeNode: ANY; get parent(): DET | null; get injector(): Injector; get componentInstance(): ANY; get context(): ANY; get listeners(): DebugEventListener[]; get references(): { [key: string]: ANY; }; get providerTokens(): ANY[]; } export interface DebugEventListener { name: string; callback: AFunction; } export interface Type extends AFunction { new (...args: unknown[]): T; } export declare enum InjectFlags { Default = 0, Host = 1, Self = 2, SkipSelf = 4, Optional = 8 } export interface PlatformRef { bootstrapModuleFactory(moduleFactory: NgModuleFactory, options?: BootstrapOptions): Promise>; bootstrapModule(moduleType: Type, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array): Promise>; onDestroy(callback: () => void): void; get injector(): Injector; destroy(): void; get destroyed(): boolean; } export interface NgModuleFactory { get moduleType(): Type; create(parentInjector: Injector | null): NgModuleRef; } export interface NgModuleRef { get injector(): EnvironmentInjector; get componentFactoryResolver(): ComponentFactoryResolver; get instance(): T; destroy(): void; onDestroy(callback: () => void): void; } export interface EnvironmentInjector extends Injector { get(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T; get(token: ANY, notFoundValue?: ANY): ANY; runInContext(fn: () => ReturnT): ReturnT; destroy(): void; } export interface ComponentFactoryResolver { resolveComponentFactory(component: Type): ComponentFactory; } export interface ComponentFactory { get selector(): string; componentType(): Type; get ngContentSelectors(): string[]; get inputs(): { propName: string; templateName: string; }[]; get outputs(): { propName: string; templateName: string; }[]; create(injector: Injector, projectableNodes?: ANY[][], rootSelectorOrNode?: string | ANY, environmentInjector?: EnvironmentInjector | NgModuleRef): ComponentRef; } export interface NgModule { providers?: Provider[]; declarations?: Array | ANY[]>; imports?: Array | ModuleWithProviders | ANY[]>; exports?: Array | ANY[]>; entryComponents?: Array | ANY[]>; bootstrap?: Array | ANY[]>; schemas?: Array; id?: string; jit?: true; } export interface Component extends Directive { changeDetection?: ChangeDetectionStrategy; viewProviders?: Provider[]; moduleId?: string; templateUrl?: string; template?: string; styleUrls?: string[]; styles?: string[]; animations?: ANY[]; encapsulation?: ViewEncapsulation; interpolation?: [string, string]; entryComponents?: Array | ANY[]>; preserveWhitespaces?: boolean; standalone?: boolean; imports?: (Type | ANY[])[]; schemas?: SchemaMetadata[]; } export interface Directive { selector?: string; inputs?: string[]; outputs?: string[]; providers?: Provider[]; exportAs?: string; queries?: { [key: string]: ANY; }; host?: { [key: string]: string; }; jit?: true; standalone?: boolean; } export interface Pipe { name: string; pure?: boolean; standalone?: boolean; } export declare enum ChangeDetectionStrategy { OnPush = 0, Default = 1 } export declare enum ViewEncapsulation { Emulated = 0, None = 2, ShadowDom = 3 } export interface TestModuleMetadata { providers?: ANY[]; declarations?: ANY[]; imports?: ANY[]; schemas?: Array; teardown?: ModuleTeardownOptions; errorOnUnknownElements?: boolean; errorOnUnknownProperties?: boolean; } interface ModuleTeardownOptions { destroyAfterEach: boolean; rethrowErrors?: boolean; } export type MetadataOverride = { add?: Partial; remove?: Partial; set?: Partial; }; export interface TestEnvironmentOptions { teardown?: ModuleTeardownOptions; errorOnUnknownElements?: boolean; errorOnUnknownProperties?: boolean; } export interface Predicate { (value: T): boolean; } export type ProviderToken = Type | AbstractType; interface AbstractType extends AFunction { prototype: T; } export interface BootstrapOptions { ngZone?: NgZone | 'zone.js' | 'noop'; ngZoneEventCoalescing?: boolean; ngZoneRunCoalescing?: boolean; } export type CompilerOptions = { useJit?: boolean; defaultEncapsulation?: ViewEncapsulation; providers?: StaticProvider[]; missingTranslation?: MissingTranslationStrategy; preserveWhitespaces?: boolean; }; type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | ANY[]; interface ValueProvider extends ValueSansProvider { provide: ANY; multi?: boolean; } interface ValueSansProvider { useValue: ANY; } interface ExistingProvider extends ExistingSansProvider { provide: ANY; multi?: boolean; } interface ExistingSansProvider { useExisting: ANY; } interface StaticClassProvider extends StaticClassSansProvider { provide: ANY; multi?: boolean; } interface StaticClassSansProvider { useClass: Type; deps: ANY[]; } interface ConstructorProvider extends ConstructorSansProvider { provide: Type; multi?: boolean; } interface ConstructorSansProvider { deps?: ANY[]; } interface FactoryProvider extends FactorySansProvider { provide: ANY; multi?: boolean; } interface FactorySansProvider { useFactory: AFunction; deps?: ANY[]; } declare enum MissingTranslationStrategy { Error = 0, Warning = 1, Ignore = 2 } export type Provider = Type | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | ANY[]; interface ClassProvider extends ClassSansProvider { provide: ANY; multi?: boolean; } interface ClassSansProvider { useClass: Type; } export interface ModuleWithProviders { ngModule: Type; providers?: Provider[]; } export interface SchemaMetadata { name: string; } export {};