import type { VdmComplexType, VdmOperation, VdmPartialEntity } from '../../vdm-types'; import type { ServiceNameFormatter } from '../../service-name-formatter'; import type { EdmxParameter, ServiceMetadata, EdmxOperation, EdmxOperationImport, EdmxReturnType } from '../../edmx-parser'; /** * @internal * Joins the operation and operation Import. * Filters out all operations which do not have a OperationImport * Filters out all bound operations without a parameter and extracts the entity set name from the first parameter * It also removes the first parameter which contains only the entity information */ export declare function filterAndTransformOperations(operationImports: EdmxOperationImport[], operations: EdmxOperation[], isBound: boolean): EdmxJoinedOperation[]; /** * Type representing an operation where the EdmxOperationImport and EdmxOperation have been joined. * @internal */ export interface EdmxJoinedOperation { /** * @internal */ Name: string; /** * @internal */ operationName: string; /** * @internal */ Parameter: EdmxParameter[]; /** * @internal */ ReturnType: EdmxReturnType | undefined; /** * @internal */ operationType: 'function' | 'action'; /** * @internal */ IsBound: boolean; /** * @internal */ entitySetName?: string; } /** * Type representing a bound operation with joined data. * The entitySet name was extracted by the first parameter * The first parameter was removed. * @internal */ export type EdmxJoinedOperationBound = EdmxJoinedOperation & { /** * @internal */ IsBound: true; /** * @internal */ entitySetName: string; }; /** * @internal */ export declare function generateUnboundOperations(serviceMetadata: ServiceMetadata, serviceName: string, entities: VdmPartialEntity[], complexTypes: VdmComplexType[], formatter: ServiceNameFormatter): VdmOperation[]; /** * @internal */ export declare function generateBoundOperations(serviceMetadata: ServiceMetadata, serviceName: string, entities: VdmPartialEntity[], complexTypes: VdmComplexType[], formatter: ServiceNameFormatter, edmxBindingEntitySetName: string, bindingEntityClassName: string): VdmOperation[];