import { Type, Base } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { IEG_ColorTransform } from "./IEG_ColorTransform";
import { ST_PresetColorVal } from "./ST_PresetColorVal";
import { ST_SchemeColorVal } from "./ST_SchemeColorVal";
import { ST_HexColorRGB } from "./ST_HexColorRGB";
import { XmlPartManagerBase } from "./XmlPartManagerBase";
import { ST_SystemColorVal } from "./ST_SystemColorVal";
/**
 * @hidden
 */
export interface IEG_ColorChoice {
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_ColorChoiceVisitor$2<TArg, TResult>, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IEG_ColorChoice_$type: Type;
/**
 * @hidden
 */
export declare abstract class EG_ColorChoice extends Base implements IEG_ColorChoice {
    static $t: Type;
    abstract _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_ColorChoiceVisitor$2<TArg, TResult>, b: TArg): TResult;
    private a;
    readonly b: List$1<IEG_ColorTransform>;
}
/**
 * @hidden
 */
export declare class CT_PresetColor_Core extends EG_ColorChoice implements IEG_ColorChoice {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_ColorChoiceVisitor$2<TArg, TResult>, b: TArg): TResult;
    c: ST_PresetColorVal;
}
/**
 * @hidden
 */
export declare class CT_SchemeColor extends EG_ColorChoice implements IEG_ColorChoice {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_ColorChoiceVisitor$2<TArg, TResult>, b: TArg): TResult;
    c: ST_SchemeColorVal;
}
/**
 * @hidden
 */
export declare class CT_SRgbColor extends EG_ColorChoice implements IEG_ColorChoice {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_ColorChoiceVisitor$2<TArg, TResult>, b?: TArg): TResult;
    c: ST_HexColorRGB;
    static d(a: XmlPartManagerBase, b: ST_HexColorRGB): {
        p1: ST_HexColorRGB;
    };
}
/**
 * @hidden
 */
export declare class CT_SysColor extends EG_ColorChoice implements IEG_ColorChoice {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_ColorChoiceVisitor$2<TArg, TResult>, b?: TArg): TResult;
    c: ST_HexColorRGB;
    d: ST_SystemColorVal;
}
/**
 * @hidden
 */
export interface IEG_ColorChoiceVisitor$2<TArg, TResult> {
    _visitCT_SchemeColor$i(a: CT_SchemeColor, b: TArg): TResult;
    _visitCT_SRgbColor$i(a: CT_SRgbColor, b: TArg): TResult;
    _visitCT_SysColor$i(a: CT_SysColor, b: TArg): TResult;
    _visitCT_PresetColor$i(a: CT_PresetColor_Core, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IEG_ColorChoiceVisitor$2_$type: Type;
