import { Expression, LiteralExpression, ExpressionOrLiteral } from '#csharp/code-dom/expression';
import { Namespace } from '#csharp/code-dom/namespace';
import { Parameter } from '#csharp/code-dom/parameter';
import { Property } from '#csharp/code-dom/property';
import { TypeDeclaration } from './type-declaration';
import { Dictionary } from '#common/dictionary';
export declare class LibraryType implements TypeDeclaration {
    private name;
    private readonly fullName;
    private namespace;
    constructor(namespace: Namespace | string, name: string);
    readonly declaration: string;
    toString(): string;
    newInstance(...parameters: Array<ExpressionOrLiteral>): Expression;
}
export declare class EnumType implements TypeDeclaration {
    private namespace;
    private name;
    constructor(namespace: Namespace, name: string);
    readonly declaration: string;
    member(enumMember: string): Expression;
    readonly definition: string;
    toString(): string;
    newProperty(name: string, objectInitializer?: Partial<Property>): Property;
    newParameter(name: string, objectInitializer?: Partial<Parameter>): Parameter;
    withMembers<T>(): T & EnumType;
}
export interface Index<T> {
    [key: number]: T;
}
export declare const None: Namespace;
export declare const System: Namespace & {
    Threading: Namespace & {
        CancellationToken: LibraryType;
        CancellationTokenSource: LibraryType;
        Tasks: Namespace & {
            Task(taskType?: TypeDeclaration | undefined): TypeDeclaration;
        };
    };
    String: LibraryType & {
        Empty: LiteralExpression;
    };
    DateTime: LibraryType;
    EventArgs: LibraryType;
    Exception: LibraryType;
    AggregateException: LibraryType;
    TimeSpan: LibraryType;
    Type: LibraryType;
    Uri: LibraryType;
    IFormatProvider: LibraryType;
    Xml: Namespace & {
        Linq: Namespace & {
            XElement: LibraryType;
            XAttribute: LibraryType;
        };
    };
    Net: Namespace & {
        Http: Namespace & {
            HttpRequestMessage: LibraryType;
            HttpResponseMessage: LibraryType;
            Headers: Namespace & {
                HttpHeaders: LibraryType;
                HttpResponseHeaders: LibraryType;
            };
        };
        HttpStatusCode: LibraryType & Dictionary<LiteralExpression> & Index<LiteralExpression>;
    };
    Collections: Namespace & {
        Hashtable: LibraryType;
        Generic: Namespace & {
            Dictionary(keyType: TypeDeclaration, valueType: TypeDeclaration): TypeDeclaration;
            KeyValuePair(keyType: TypeDeclaration, valueType: TypeDeclaration): TypeDeclaration;
            IEnumerable(type: TypeDeclaration): TypeDeclaration;
        };
    };
    Action(...actionParameters: TypeDeclaration[]): TypeDeclaration;
    Func(...funcParameters: TypeDeclaration[]): TypeDeclaration;
};
export declare const Unknown: TypeDeclaration;
export declare const ToDo: TypeDeclaration;
export declare const Void: TypeDeclaration;
export declare const String: TypeDeclaration;
export declare const Int: TypeDeclaration;
export declare const Long: TypeDeclaration;
export declare const Double: TypeDeclaration;
export declare const Float: TypeDeclaration;
export declare const Binary: TypeDeclaration;
export declare const Bool: TypeDeclaration;
export declare const Object: TypeDeclaration;
export declare const Dynamic: TypeDeclaration;
export declare const ThisObject: TypeDeclaration;
export declare const Var: TypeDeclaration;
export declare const True: LiteralExpression;
export declare const False: LiteralExpression;
export declare const Null: LiteralExpression;
export declare const This: LiteralExpression;
//# sourceMappingURL=mscorlib.d.ts.map