///
import { EntitySerializationFormat, IEntitySerializer } from "../abstractions";
import { EntityExportFile, EntitySerializerColumnDefinition, EntitySerializerSheetDefinition, ImportEntry } from "../abstractions/serializer";
import { EntityServiceLocator } from "../providers/services";
import { EntityReference } from "../models";
export type EntitySerializerOptions = {
delimiter?: string;
};
export type ParseColumnValueInput = {
row: any;
columnName: string;
parser: EntitySerializerColumnDefinition["parser"];
};
export declare abstract class EntitySerializer implements IEntitySerializer {
protected readonly services: EntityServiceLocator;
protected readonly options?: EntitySerializerOptions | undefined;
private readonly logger;
protected readonly entityName: string;
constructor(services: EntityServiceLocator, options?: EntitySerializerOptions | undefined);
export(filters?: TEntitySearchParameters, payload?: TPayload): Promise;
import(items: TSheetItem[], payload?: TPayload): Promise;
parse(data: Buffer, format: EntitySerializationFormat, payload?: TPayload): Promise[]>;
protected importItems(items: TSheetItem[], context: TContext, payload?: TPayload): Promise;
private parseCsv;
private parseXlsx;
private convertSheetRecord;
private parseColumnValue;
createSample(format: EntitySerializationFormat): Promise;
private buildSampleFile;
serialize(data: TSheetItem[], format: EntitySerializationFormat, payload?: TPayload): Promise;
protected abstract getDefinition(context: TContext, payload?: TPayload): Promise>;
protected abstract loadEntities(filters?: TEntitySearchParameters): Promise;
protected abstract convertToSheetItems(entities: TEntity[], payload?: TPayload): Promise;
protected validateSheetItem(item: TSheetItem, allItems: TSheetItem[], context: TContext): void;
protected abstract importItem(item: TSheetItem, context: TContext, payload?: TPayload): Promise>;
protected getContext(): Promise;
private buildExportFile;
private getColumnValue;
private selectColumnValue;
private buildExportFileName;
}