import { Type } from '@angular/core';
import { SpectatorDirective as BaseSpectatorDirective, HostComponent, SpectatorDirectiveOptions, SpectatorDirectiveOverrides, Token } from '@ngneat/spectator';
import { SpyObject } from './mock';
/**
 * @publicApi
 */
export declare class SpectatorDirective<D, H = HostComponent> extends BaseSpectatorDirective<D, H> {
    inject<T>(token: Token<T>, fromComponentInjector?: boolean): SpyObject<T>;
}
/**
 * @publicApi
 */
export type SpectatorDirectiveFactory<D, H = HostComponent> = <HP>(template: string, overrides?: SpectatorDirectiveOverrides<H, HP>) => SpectatorDirective<D, H & HostComponent extends H ? HP : unknown>;
/**
 * @publicApi
 */
export type PresetSpectatorDirectiveFactory<D, H> = <HP>(template?: string, overrides?: SpectatorDirectiveOverrides<H, HP>) => SpectatorDirective<D, H & HostComponent extends H ? HP : unknown>;
/**
 * @publicApi
 */
export declare function createDirectiveFactory<D, H = HostComponent>(options: SpectatorDirectiveOptions<D, H> & {
    template: string;
}): PresetSpectatorDirectiveFactory<D, H>;
/**
 * @publicApi
 */
export declare function createDirectiveFactory<D, H = HostComponent>(typeOrOptions: Type<D> | SpectatorDirectiveOptions<D, H>): SpectatorDirectiveFactory<D, H>;
