import { OperationRequest } from "./../../GN-common/entity/operationRequest/OperationRequest";
import { Request } from "./../../GN-common/entity/operationRequest/base/Request";
import { OperationObject } from "./../../GN-common/entity/operationRequest/OperationObject";
import { OperationArray } from "./../../GN-common/entity/operationRequest/OperationArray";
import { GNArray, GNHashtable } from "./../../GN-common/common/GNData";
import { GNEnhancedObjectFieldMetadata } from "./../../GN-common/entity/DataMember";
export type Constructor<T> = {
    new (...args: any[]): T;
};
export interface IRequestConverterService {
    getGNEnhancedObjectFieldMetadata<T>(cls: Constructor<T>): GNEnhancedObjectFieldMetadata[];
    createTOperationRequest<T extends OperationRequest>(operationRequest: OperationRequest, cls: Constructor<T>): T;
    createTObject<T>(gnHashtable: GNHashtable, cls: Constructor<T>): OperationObject<T>;
    createTArray<T>(gnArray: GNArray, cls: Constructor<T>): OperationArray<T>;
    newOperationRequest(request: Request): OperationRequest;
}
