import { BranchContainerModel } from "../branch/branch-container.model";
import { CompanyContainerModel } from "../company/company-container.model";
interface BaseRuleType {
    rule_type: string;
    rule_name: string;
    negation_logic: string;
}
export interface IRuleDateTimeNode extends BaseRuleType {
    start_date: Date;
    end_date: Date;
    period: string;
    unit: string;
    date_logic: string;
    issue_date?: Date;
}
export interface IRuleEntityNode extends BaseRuleType {
    all_customer: boolean;
    all_supplier: boolean;
    all_employee: boolean;
    all_merchant: boolean;
    rule_select: string;
}
export interface IFilterValueNodes {
    guid: string;
    name: string;
    code: string;
}
interface IRuleGenericNode<T extends IFilterValueNodes> extends BaseRuleType {
    rule_filter_values: T[];
}
export interface IBranchRow extends IFilterValueNodes {
    company_name: string;
}
export interface DocHdrRuleListingMainForm extends IRuleGenericNode<IFilterValueNodes> {
}
export interface BranchRuleMainForm extends IRuleGenericNode<IBranchRow> {
}
export interface CompanyRuleMainForm extends IRuleGenericNode<IFilterValueNodes> {
}
export interface MemberClassRuleMainForm extends IRuleGenericNode<IFilterValueNodes> {
}
export interface MemberLabelRuleMainForm extends IRuleGenericNode<IFilterValueNodes> {
}
export interface IBranchAndCompany {
    branch_data: BranchContainerModel[];
    company_data: CompanyContainerModel[];
}
export interface IRuleItemNode extends IRuleGenericNode<IFilterValueNodes> {
    minQty: number;
    minAmt: number;
}
export interface IRuleItemWithDimensionNode extends IRuleItemNode {
    totalWeightFrom: number;
    totalWeightTo: number;
    totalVolumetricWeightFrom: number;
    totalVolumetricWeightTo: number;
}
export {};
