import { FlowConventionName } from './flowConventionName';
import { FlowConventions } from './flowConventions';
import { Schedule } from './schedule';
/**
 * Schedule for fixed coupon payments
 */
export interface FixedSchedule {
    /**
     * Date to start generate from
     */
    startDate: Date;
    /**
     * Date to generate to
     */
    maturityDate: Date;
    flowConventions?: FlowConventions;
    /**
     * Coupon rate given as a fraction.
     */
    couponRate?: number;
    conventionName?: FlowConventionName;
    /**
     * Scaling factor, the quantity outstanding on which the rate will be paid.
     */
    notional?: number;
    /**
     * Payment currency. This does not have to be the same as the nominal bond or observation/reset currency.
     */
    paymentCurrency?: string | null;
    /**
     * StubType required of the schedule    Supported string (enumeration) values are: [ShortFront, ShortBack, LongBack, LongFront, Both].
     */
    stubType?: string | null;
    /**
     * The available values are: Fixed, Float, Optionality, Step, Exercise, FxRate, Invalid
     */
    scheduleType: FixedSchedule.ScheduleTypeEnum;
}
export declare namespace FixedSchedule {
    type ScheduleTypeEnum = 'Fixed' | 'Float' | 'Optionality' | 'Step' | 'Exercise' | 'FxRate' | 'Invalid';
    const ScheduleTypeEnum: {
        Fixed: Schedule.ScheduleTypeEnum;
        Float: Schedule.ScheduleTypeEnum;
        Optionality: Schedule.ScheduleTypeEnum;
        Step: Schedule.ScheduleTypeEnum;
        Exercise: Schedule.ScheduleTypeEnum;
        FxRate: Schedule.ScheduleTypeEnum;
        Invalid: Schedule.ScheduleTypeEnum;
    };
}
