import { Type, Base } from "igniteui-angular-core";
import { ISaveToXLSX } from "./ISaveToXLSX";
import { ST_AdjCoordinate } from "./ST_AdjCoordinate";
import { ST_AdjAngle } from "./ST_AdjAngle";
import { XmlPartManagerBase } from "./XmlPartManagerBase";
import { XmlWriteManager } from "./XmlWriteManager";
import { CT_AdjPoint2D } from "./CT_AdjPoint2D";
/**
 * @hidden
 */
export interface IPath2DCommand {
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IPath2DCommand_$type: Type;
/**
 * @hidden
 */
export declare class CT_Path2DArcTo extends Base implements IPath2DCommand, ISaveToXLSX {
    static $t: Type;
    d: ST_AdjCoordinate;
    c: ST_AdjCoordinate;
    a: ST_AdjAngle;
    b: ST_AdjAngle;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b?: TArg): TResult;
    readonly elementName: string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
    static e(a: XmlPartManagerBase, b: string, c: CT_Path2DArcTo): void;
}
/**
 * @hidden
 */
export declare class CT_Path2DClose extends Base implements IPath2DCommand, ISaveToXLSX {
    static $t: Type;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b?: TArg): TResult;
    readonly elementName: string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
}
/**
 * @hidden
 */
export declare class CT_Path2DCubicBezierTo extends Base implements IPath2DCommand, ISaveToXLSX {
    static $t: Type;
    a: CT_AdjPoint2D;
    b: CT_AdjPoint2D;
    c: CT_AdjPoint2D;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b?: TArg): TResult;
    readonly elementName: string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
}
/**
 * @hidden
 */
export declare class CT_Path2DLineTo extends Base implements IPath2DCommand, ISaveToXLSX {
    static $t: Type;
    a: CT_AdjPoint2D;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b?: TArg): TResult;
    readonly elementName: string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
}
/**
 * @hidden
 */
export declare class CT_Path2DMoveTo extends Base implements IPath2DCommand, ISaveToXLSX {
    static $t: Type;
    a: CT_AdjPoint2D;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b?: TArg): TResult;
    readonly elementName: string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
}
/**
 * @hidden
 */
export declare class CT_Path2DQuadBezierTo extends Base implements IPath2DCommand, ISaveToXLSX {
    static $t: Type;
    a: CT_AdjPoint2D;
    b: CT_AdjPoint2D;
    _accept$2$i<TArg, TResult>($tArg: Type, $tResult: Type, a: IPath2DCommandVisitor$2<TArg, TResult>, b?: TArg): TResult;
    readonly elementName: string;
    saveX(a: XmlPartManagerBase, b: XmlWriteManager, c: string, d: any): void;
}
/**
 * @hidden
 */
export interface IPath2DCommandVisitor$2<TArg, TResult> {
    _visitCT_Path2DClose$i(a: CT_Path2DClose, b: TArg): TResult;
    _visitCT_Path2DMoveTo$i(a: CT_Path2DMoveTo, b: TArg): TResult;
    _visitCT_Path2DLineTo$i(a: CT_Path2DLineTo, b: TArg): TResult;
    _visitCT_Path2DArcTo$i(a: CT_Path2DArcTo, b: TArg): TResult;
    _visitCT_Path2DQuadBezierTo$i(a: CT_Path2DQuadBezierTo, b: TArg): TResult;
    _visitCT_Path2DCubicBezierTo$i(a: CT_Path2DCubicBezierTo, b: TArg): TResult;
}
/**
 * @hidden
 */
export declare let IPath2DCommandVisitor$2_$type: Type;
