import { Type, Base } from "igniteui-react-core";
import { CT_BlipFillPropertiesBase } from "./CT_BlipFillPropertiesBase";
import { CT_Blip } from "./CT_Blip";
import { IEG_FillModeProperties } from "./IEG_FillModeProperties";
import { ISaveToXLSX } from "./ISaveToXLSX";
import { XmlPartManagerBase } from "./XmlPartManagerBase";
import { XmlWriteManager } from "./XmlWriteManager";
import { EG_ColorChoice } from "./EG_ColorChoice";
/**
 * @hidden
 */
export interface IEG_FillProperties {
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_FillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IEG_FillProperties_$type: Type;
/**
 * @hidden
 */
export declare class CT_BlipFillProperties extends CT_BlipFillPropertiesBase implements IEG_FillProperties {
    static $t: Type;
    d: CT_Blip;
    e: IEG_FillModeProperties;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_FillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare class CT_GroupFillProperties extends Base implements IEG_FillProperties, ISaveToXLSX {
    static $t: Type;
    get elementName(): string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
    a: ISaveToXLSX;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_FillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
}
/**
 * @hidden
 */
export interface IEG_LineFillProperties {
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_LineFillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IEG_LineFillProperties_$type: Type;
/**
 * @hidden
 */
export declare class CT_NoFillProperties extends Base implements IEG_FillProperties, IEG_LineFillProperties, ISaveToXLSX {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_FillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
    _accept$21$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_LineFillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
    get elementName(): string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
}
/**
 * @hidden
 */
export declare class CT_SolidFillProperties extends Base implements IEG_FillProperties, IEG_LineFillProperties {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_FillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
    _accept$21$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IEG_LineFillPropertiesVisitor$2<TArg, TResult>, b: TArg): TResult;
    a: EG_ColorChoice;
}
/**
 * @hidden
 */
export interface IEG_FillPropertiesVisitor$2<TArg, TResult> {
    _visitCT_BlipFillProperties$i(a: CT_BlipFillProperties, b: TArg): TResult;
    _visitCT_GroupFillProperties$i(a: CT_GroupFillProperties, b: TArg): TResult;
    _visitCT_NoFillProperties$i(a: CT_NoFillProperties, b: TArg): TResult;
    _visitCT_SolidFillProperties$i(a: CT_SolidFillProperties, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IEG_FillPropertiesVisitor$2_$type: Type;
/**
 * @hidden
 */
export interface IEG_LineFillPropertiesVisitor$2<TArg, TResult> {
    _visitCT_NoFillProperties$i(a: CT_NoFillProperties, b: TArg): TResult;
    _visitCT_SolidFillProperties$i(a: CT_SolidFillProperties, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IEG_LineFillPropertiesVisitor$2_$type: Type;
