import { Question, QuestionCheckboxModel, QuestionCompositeModel, QuestionCustomModel, QuestionDropdownModel, QuestionFileModel, QuestionMatrixDropdownModel, QuestionMatrixDynamicModel, QuestionMatrixModel, QuestionPanelDynamicModel, QuestionRadiogroupModel, QuestionSelectBase } from "survey-core"; import { BaseColumn, CompositeQuestionColumn, CustomQuestionColumn, FileColumn, ImageColumn, MatrixDynamicColumn, PanelDynamicColumn } from "./columns"; import { IColumn } from "./config"; import { ITable } from "./table-interfaces"; export interface IColumnsBuilder { buildColumns(question: Question, table: ITable): Array; } export declare class DefaultColumnsBuilder implements IColumnsBuilder { protected createColumn(question: T, table: ITable): BaseColumn; protected buildColumnsCore(question: T, table: ITable): Array; buildColumns(question: T, table: ITable): Array; } export declare class ColumnsBuilderFactory { static Instance: ColumnsBuilderFactory; private constructor(); private readonly columnsBuilders; private readonly defaultColumnsBuilder; registerBuilderColumn(type: string, columnsBuilder: IColumnsBuilder): void; getColumnsBuilder(type: string): IColumnsBuilder; } export declare class SelectBaseColumnsBuilder extends DefaultColumnsBuilder { buildColumns(question: T, table: ITable): Array; } export declare class CheckboxColumnsBuilder extends SelectBaseColumnsBuilder { protected createColumn(question: QuestionCheckboxModel, table: ITable): BaseColumn; protected buildColumnsCore(question: QuestionCheckboxModel, table: ITable): Array; } export declare class SingleChoiceColumnsBuilder extends SelectBaseColumnsBuilder { protected createColumn(question: QuestionDropdownModel | QuestionRadiogroupModel, table: ITable): BaseColumn; } export declare class MatrixColumnsBuilder extends DefaultColumnsBuilder { protected buildColumnsCore(questionBase: Question, table: ITable): IColumn[]; } export declare class ImageColumnsBuilder extends DefaultColumnsBuilder { protected createColumn(question: Question, table: ITable): ImageColumn; } export declare class FileColumnsBuilder extends DefaultColumnsBuilder { protected createColumn(question: QuestionFileModel, table: ITable): FileColumn; } export declare class MatrixDropdownColumnBuilder extends DefaultColumnsBuilder { buildColumns(questionBase: QuestionMatrixDropdownModel, table: ITable): Array; } export declare class CustomColumnsBuilder extends DefaultColumnsBuilder { protected createColumn(question: QuestionCustomModel, table: ITable): CustomQuestionColumn; } export declare class CompositeColumnsBuilder extends DefaultColumnsBuilder { static ShowAsSeparateColumns: boolean; protected getDisplayName(question: QuestionCompositeModel, table: ITable): string; protected buildColumnsCore(question: QuestionCompositeModel, table: ITable): Array; protected createColumn(question: QuestionCompositeModel, table: ITable): CompositeQuestionColumn; } export declare class MatrixDynamicColumnsBuilder extends DefaultColumnsBuilder { protected createColumn(question: QuestionMatrixDynamicModel, table: ITable): MatrixDynamicColumn; } export declare class PanelDynamicColumnsBuilder extends DefaultColumnsBuilder { protected createColumn(question: QuestionPanelDynamicModel, table: ITable): PanelDynamicColumn; }