import { InjectionToken, Type, EventEmitter } from '@angular/core'; import { SectionContent } from '../../types/external-types/sectionContent'; /** * Interface that custom list-documents components must implement. * This ensures compatibility with the page-builder system. */ export interface IPbListDocumentsComponent { /** * Input: The page structure containing the list data */ pageStructure: SectionContent; /** * Output: Emitted when the component needs to refresh its parent */ onUpdate: EventEmitter; } /** * Injection token for providing a custom list-documents component. * * Usage in app module: * ```typescript * import { PB_LIST_DOCUMENTS_COMPONENT } from 'fe-page-builder'; * * @NgModule({ * providers: [ * { provide: PB_LIST_DOCUMENTS_COMPONENT, useValue: MyCustomListDocumentsComponent } * ] * }) * export class AppModule {} * ``` * * Or using forRoot: * ```typescript * PbComponentsModule.forRoot({ * listDocumentsComponent: MyCustomListDocumentsComponent * }) * ``` */ export declare const PB_LIST_DOCUMENTS_COMPONENT: InjectionToken>; /** * Configuration options for PbComponentsModule.forRoot() */ export interface PbComponentsConfig { /** * Custom component to use instead of the default PbListDocumentsComponent. * Must implement IPbListDocumentsComponent interface. */ listDocumentsComponent?: Type; }