import { ComponentMirror, Injector, InputSignal, OutputEmitterRef, Type } from '@angular/core'; type Inputs = { [K in keyof T as T[K] extends InputSignal ? K : never]?: T[K] extends InputSignal ? R : never; }; type Outputs = { [K in keyof T as T[K] extends OutputEmitterRef ? K : never]?: T[K] extends OutputEmitterRef ? OutputEmitterRef['emit'] : never; }; type OptionalKeys = K extends keyof T ? T[K] extends Required[K] ? undefined extends T[K] ? K : never : K : never; interface FlexRenderRequiredOptions, TOutputs extends Record> { /** * Component instance inputs. They will be set via [componentRef.setInput API](https://angular.dev/api/core/ComponentRef#setInput) */ inputs: TInputs; /** * Component instance outputs. */ outputs?: TOutputs; /** * Optional {@link Injector} that will be used when rendering the component */ injector?: Injector; } interface FlexRenderOptions, TOutputs extends Record> { /** * Component instance inputs. They will be set via [componentRef.setInput API](https://angular.dev/api/core/ComponentRef#setInput) */ inputs?: TInputs; /** * Component instance outputs. */ outputs?: TOutputs; /** * Optional {@link Injector} that will be used when rendering the component */ injector?: Injector; } /** * Helper function to create a [@link FlexRenderComponent] instance, with better type-safety. * * - options object must be passed when the given component instance contains at least one required signal input. * - options/inputs is typed with the given component inputs * - options/outputs is typed with the given component outputs */ export declare function flexRenderComponent = Inputs, TOutputs extends Outputs = Outputs>(component: Type, ...options: OptionalKeys extends never ? [FlexRenderOptions?] : [FlexRenderRequiredOptions]): FlexRenderComponent; /** * Wrapper class for a component that will be used as content for {@link FlexRenderDirective} * * Prefer {@link flexRenderComponent} helper for better type-safety */ export declare class FlexRenderComponent { readonly component: Type; readonly inputs?: Inputs; readonly injector?: Injector; readonly outputs?: Outputs; readonly mirror: ComponentMirror; readonly allowedInputNames: string[]; readonly allowedOutputNames: string[]; constructor(component: Type, inputs?: Inputs, injector?: Injector, outputs?: Outputs); } export {};