import { IAddress, IBankAccount, ICompany, IDebtor, IPerson, IPhone, IRequest, ServiceParameter } from '../../../Models';
import { IRatePlan, IRatePlans } from './RatePlan';
import { IRatePlanCharge, IRatePlanCharges } from './RatePlanCharge';
import { Configuration, IConfiguration } from './Configuration';
export interface ISubscription extends IRequest {
    address?: Partial<IAddress>;
    allowedServices?: string;
    b2b?: string;
    billingTiming?: number;
    company?: Partial<ICompany>;
    configuration?: IConfiguration;
    configurationCode?: string;
    customerAccountName?: string;
    customerBIC?: string;
    customerIBAN?: string;
    debtor?: IDebtor;
    email?: string;
    includeTransaction?: boolean;
    mandateReference?: string;
    person?: Partial<IPerson>;
    phone?: Partial<IPhone>;
    subscriptionGuid?: string;
    termStartDay?: number;
    termStartMonth?: number;
    termStartWeek?: string;
    transactionVatPercentage?: number;
    ratePlans?: IRatePlans;
    ratePlanCharges?: IRatePlanCharges;
    bankAccount?: IBankAccount;
}
export declare class Subscription extends ServiceParameter implements ISubscription {
    set configurationCode(configurationCode: string);
    set includeTransaction(includeTransaction: boolean);
    set transactionVatPercentage(transactionVatPercentage: number);
    set subscriptionGuid(value: string);
    set termStartDay(value: number);
    set termStartMonth(value: number);
    set billingTiming(value: number);
    set termStartWeek(value: string);
    set b2b(value: string);
    set mandateReference(value: string);
    set allowedServices(value: string);
    set debtor(value: IDebtor);
    set bankAccount(value: IBankAccount);
    set email(value: string);
    set phone(value: IPhone);
    set address(value: IAddress);
    set person(value: IPerson);
    set company(value: ICompany);
    set configuration(value: Configuration);
    set ratePlans(value: IRatePlans);
    set ratePlanCharges(value: IRatePlanCharges);
    set customerIBAN(value: string);
    set customerAccountName(value: string);
    set customerBIC(value: string);
    protected set addRatePlan(value: IRatePlan);
    protected set updateRatePlan(value: IRatePlan);
    protected set disableRatePlan(value: IRatePlan);
    protected set addRatePlanCharge(value: IRatePlanCharge);
    getGroups(): {
        [key: Capitalize<string>]: Capitalize<string>;
    };
}
