import { ViewContainerRef, OnDestroy, Type, Injector, TemplateRef, OnChanges, SimpleChanges, DoCheck } from '@angular/core';
import { UIOverrideResolverService } from '../services/ui-override-resolver.service';
import { MediasfuUICustomOverrides } from '../@types/ui-overrides.types';
import * as i0 from "@angular/core";
/**
* Directive: appWithOverride
*
* Apply UI overrides to components dynamically.
* This directive checks for overrides and either:
* 1. Renders the custom component if an override exists
* 2. Renders the default component if no override exists
*
* Usage:
* ```html
*
*
* ```
*/
export declare class WithOverrideDirective implements OnChanges, OnDestroy, DoCheck {
private templateRef;
private viewContainerRef;
private uiOverrideResolver;
private injector;
appWithOverride: keyof MediasfuUICustomOverrides;
default: Type;
props?: Record | (() => Record);
customInjector?: Injector;
get appWithOverrideDefault(): Type;
get appWithOverrideProps(): Record | (() => Record);
get appWithOverrideInjector(): Injector;
private componentRef?;
private embeddedDefaultView?;
private renderedDefaultView?;
constructor(templateRef: TemplateRef, viewContainerRef: ViewContainerRef, uiOverrideResolver: UIOverrideResolverService, injector: Injector);
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
ngDoCheck(): void;
private destroyRenderedViews;
private render;
private resolveProps;
private updateComponentInstanceProps;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* Directive: appWithFunctionOverride
*
* Apply function overrides to method calls.
* This directive wraps a function with override logic.
*
* Usage in TypeScript:
* ```typescript
* @ViewChild(WithFunctionOverrideDirective) functionOverride!: WithFunctionOverrideDirective;
*
* const wrappedFunction = this.functionOverride.applyOverride(
* 'consumerResume',
* this.originalConsumerResume
* );
* ```
*/
export declare class WithFunctionOverrideDirective {
private uiOverrideResolver;
constructor(uiOverrideResolver: UIOverrideResolverService);
/**
* Apply function override
* @param key - The function key
* @param originalFunction - The original function
* @returns The wrapped or replaced function
*/
applyOverride any>(key: keyof MediasfuUICustomOverrides, originalFunction: T): T;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}