import { AnnotationConfig } from '../../types';
import type { CsdlSchema } from './csdl-schema';
export declare class CsdlAnnotable {
    Annotation?: CsdlAnnotation[];
    constructor({ Annotation }: {
        Annotation?: any[];
    });
    toJson(): {
        [key: string]: any;
    };
    toConfig(): {
        [key: string]: any;
    };
}
export declare class CsdlAnnotations extends CsdlAnnotable {
    private schema;
    Target: string;
    Qualifier?: string;
    constructor(schema: CsdlSchema, { Target, Qualifier, Annotation, }: {
        Target: string;
        Qualifier?: string;
        Annotation: any[];
    });
    toJson(): {
        [key: string]: any;
    };
    toConfig(): AnnotationConfig[];
}
export declare class CsdlAnnotation {
    Term: string;
    String?: string;
    Bool?: boolean;
    Int?: number;
    Collection?: CsdlCollection[];
    Record?: CsdlRecord[];
    EnumMember?: CsdlEnumMember[];
    constructor({ Term, String, Bool, Int, Collection, Record, EnumMember, }: {
        Term: string;
        String?: string;
        Bool?: boolean;
        Int?: number;
        Collection?: any[];
        Record?: any[];
        EnumMember?: any[];
    });
    toJson(): {
        [key: string]: any;
    };
    toConfig(): AnnotationConfig;
}
export declare class CsdlTerm {
    private schema;
    Name: string;
    Type: string;
    BaseTerm?: string;
    DefaultValue?: string;
    AppliesTo?: string;
    Nullable?: boolean;
    MaxLength?: number;
    Precision?: number;
    Scale?: number;
    SRID?: string;
    String?: string;
    Bool?: boolean;
    Int?: number;
    constructor(schema: CsdlSchema, { Name, Type, BaseTerm, DefaultValue, AppliesTo, Nullable, MaxLength, Precision, Scale, SRID, String, Bool, Int, }: {
        Name: string;
        Type: string;
        BaseTerm?: string;
        DefaultValue?: string;
        AppliesTo?: string;
        Nullable?: boolean;
        MaxLength?: number;
        Precision?: number;
        Scale?: number;
        SRID?: string;
        String?: string;
        Bool?: boolean;
        Int?: number;
    });
    toJson(): {
        [key: string]: any;
    };
}
export declare class CsdlCollection {
    String: CsdlString[];
    Record: CsdlRecord[];
    PropertyPath: CsdlPropertyPath[];
    NavigationPropertyPath: CsdlNavigationPropertyPath[];
    constructor({ String, Record, PropertyPath, NavigationPropertyPath, }: {
        String: any[];
        Record: any[];
        PropertyPath: any[];
        NavigationPropertyPath: any[];
    });
    toJson(): {
        [key: string]: any;
    };
}
export declare class CsdlRecord {
    PropertyValue: CsdlPropertyValue[];
    constructor({ PropertyValue }: {
        PropertyValue: any[];
    });
    toJson(): {
        [key: string]: any;
    };
}
export declare class CsdlPropertyValue {
    Name: string;
    String?: string;
    Date?: Date;
    EnumMember?: CsdlEnumMember[];
    constructor({ Name, String, Date, EnumMember, }: {
        Name: string;
        String?: string;
        Date?: Date;
        EnumMember?: any[];
    });
    toJson(): {
        [key: string]: any;
    };
}
export declare class CsdlEnumMember {
    TextContent: string;
    constructor({ TextContent }: {
        TextContent: string;
    });
    toJson(): {
        TextContent: string;
    };
}
export declare class CsdlString {
    TextContent: string;
    constructor({ TextContent }: {
        TextContent: string;
    });
    toJson(): {
        TextContent: string;
    };
}
export declare class CsdlPropertyPath {
    TextContent: string;
    constructor({ TextContent }: {
        TextContent: string;
    });
    toJson(): {
        TextContent: string;
    };
}
export declare class CsdlNavigationPropertyPath {
    TextContent: string;
    constructor({ TextContent }: {
        TextContent: string;
    });
    toJson(): {
        TextContent: string;
    };
}
