import { Params as BaseParams, Content as BaseContent } from '../metadata.interfaces';
interface Session {
    trades: Array<null | number>;
    tradesText: {
        [key: string]: string;
    };
    tradingPhase: string;
    startTime: number[];
    endTime: number[];
    classificationText: string;
    classification: number;
    isOvernight: boolean;
}
interface TradingSession {
    sessions: Session[];
    validFrom: string;
    validTo: string;
    timeZone: string;
    rolloverTime: string;
    weekSummDef: string;
    summarizationModelText: string;
    summarizationModel: number;
}
interface Condition {
    conditionOperator: number;
    conditionOperatorText: string;
    operand: {
        fid: string;
        type: number;
        typeText: string;
    };
    _type: string;
}
interface Value {
    fid: string;
    type: number;
    typeText: string;
}
interface FieldAssignment {
    value?: Value;
    value1?: Value;
    value2?: Value;
    field: string;
    _type: string;
}
interface DataFilterClause {
    type: string;
    clauseNumber: number;
    annotation: string;
    acceptCondition: {
        operator: number;
        operatorText: string;
        conditions: Condition[];
    };
    recordGeneration: {
        annotation: string;
        clauseNumber: number;
        fields: any;
        fieldMap: {
            [key: string]: number;
        };
        fieldAssignments: FieldAssignment[];
        qualifierFacts: any[];
        recordType: number;
        type: string;
        recordTypeText: string;
    };
}
interface MarketRulesData {
    ruleId: string;
    ruleName: string;
    ruleVersionId: string;
    dataFilterClauses: DataFilterClause[];
}
interface RuleReferenceData {
    [key: string]: {
        [key: string]: string;
    };
}
interface Qualifiers {
    [key: string]: {
        code: string;
        desc: string;
        action: number;
        exchcode: string;
        fact: string;
        fid: string;
        id: string;
        orbvwap: number;
        parseby: string;
        stdvwap: number;
        length: number;
        pos: number;
    };
}
interface InstrumentInfo {
    Intraday: {
        ReportDate: string;
        Symbology: string;
        DView: string;
        interval: any[];
    };
    Interday: {
        ReportDate: string;
        Symbology: string;
        TimestampFact: string;
        DView: string;
        interval: any[];
    };
}
export declare type Types = 'Qualifiers' | 'RuleReferenceData' | 'TimeZone' | 'TradingSessions' | 'MarketRulesData' | 'InstrumentInfo';
export interface Params extends BaseParams {
    name: string;
    types?: Types[] | string;
}
export interface Content extends BaseContent {
    ric: string;
    version: string;
}
export interface Instrument {
    Qualifiers?: Qualifiers;
    RuleReferenceData?: RuleReferenceData;
    TimeZone?: string;
    TradingSessions?: TradingSession[];
    MarketRulesData?: MarketRulesData;
    InstrumentInfo: InstrumentInfo;
}
export {};
