import * as i0 from '@angular/core';
import { Injector } from '@angular/core';
import { AXPEntity } from '@acorex/platform/common';
import { AXPEntityModel } from '@acorex/platform/layout/entity';

declare const RootConfig: {
    config: {
        i18n: string;
        module: string;
    };
    module: {
        route: string;
        name: string;
        title: string;
        icon: string;
    };
    entities: {
        supplierProduct: {
            name: string;
            source: string;
            title: string;
            titlePlural: string;
            icon: string;
        };
    };
};

declare class AXMProcurementManagementModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMProcurementManagementModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMProcurementManagementModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMProcurementManagementModule>;
}

declare function supplierProductFactory(injector: Injector): Promise<AXPEntity | null>;

interface AXMProcurementManagementSupplierProductEntityModel extends AXPEntityModel<string> {
    supplierId: string;
    supplier?: {
        id: string;
        displayName: string;
    };
    productId: string;
    product?: {
        id: string;
        code: string;
        title: string;
    };
    unitPrice?: number;
    currencyId?: string;
    currency?: {
        id: string;
        code: string;
        symbol: string;
    };
    paymentTermsId?: string;
    paymentTerms?: {
        id: string;
        title: string;
    };
    minimumOrderQuantity?: number;
    leadTimeDays?: number;
    priority?: number;
    validFrom?: Date;
    validTo?: Date;
    meta?: Record<string, any>;
}

export { AXMProcurementManagementModule, RootConfig, supplierProductFactory };
export type { AXMProcurementManagementSupplierProductEntityModel };
