import { AcApContext } from '../app';
import { AcEdCommand } from '../editor';
/**
 * Command to create one arc.
 *
 * Supported input flows align with AutoCAD ARC command options:
 * - Start/Second/End (3-point)
 * - Start/Center/End, Start/Center/Angle, Start/Center/Chord Length
 * - Start/End/Center, Start/End/Angle, Start/End/Direction, Start/End/Radius
 * - Center/Start/End, Center/Start/Angle, Center/Start/Chord Length
 */
export declare class AcApArcCmd extends AcEdCommand {
    /**
     * Creates ARC command instance.
     */
    constructor();
    /**
     * Command entry point.
     *
     * Supports initial Start-point branch and Center-first branch.
     *
     * @param context - Current app context.
     */
    execute(context: AcApContext): Promise<void>;
    /**
     * Adds one localized keyword to a prompt options object.
     *
     * @param prompt - Prompt options to extend.
     * @param key - Keyword i18n key suffix.
     */
    private addKeyword;
    /**
     * Appends created arc entity to model space.
     *
     * @param context - Current app context.
     * @param arc - Arc definition to append.
     */
    private appendArc;
    /**
     * Emits one warning message for invalid geometry input.
     *
     * @param key - Invalid-input category key.
     */
    private warnInvalidGeometry;
    /**
     * Gets direction factor from Ctrl-toggle state.
     *
     * @returns `1` for normal direction, `-1` for flipped direction.
     */
    private getArcDirectionFactor;
    /**
     * Applies Ctrl direction factor to orientation sign.
     *
     * @param sign - Base orientation sign.
     * @returns Possibly flipped orientation sign.
     */
    private applyCtrlDirectionSign;
    /**
     * Applies Ctrl direction factor to a signed numeric input.
     *
     * @param value - Signed value (angle/chord/radius).
     * @returns Value with direction factor applied.
     */
    private applyCtrlDirectionValue;
    /**
     * Gets whether current Ctrl-toggle indicates direction reversal.
     *
     * @returns `true` when direction is flipped.
     */
    private isCtrlDirectionFlipped;
    /**
     * Handles Start-first main branch.
     *
     * Flow:
     * - Start -> Second -> End (3-point)
     * - Start -> Center -> ...
     * - Start -> End -> ...
     *
     * @param context - Current app context.
     * @param start - Start point picked by user.
     */
    private runStartFlow;
    /**
     * Completes 3-point arc flow (Start/Second/End).
     *
     * @param context - Current app context.
     * @param start - Start point.
     * @param second - Point on arc.
     */
    private finishThreePointArc;
    /**
     * Runs Center-first branch:
     * Center -> Start -> (End | Angle | Chord Length)
     *
     * @param context - Current app context.
     */
    private runCenterStartFlow;
    /**
     * Runs Start->Center branch:
     * Start -> Center -> (End | Angle | Chord Length)
     *
     * @param context - Current app context.
     * @param start - Start point.
     */
    private runStartCenterFlow;
    /**
     * Shared handler for center-start option family.
     *
     * Supports:
     * - End point picking
     * - Included angle input
     * - Chord length input
     *
     * @param context - Current app context.
     * @param center - Arc center.
     * @param start - Arc start point.
     */
    private finishCenterStartFlow;
    /**
     * Handles Start-End option family.
     *
     * Supports:
     * - Start -> End -> Center
     * - Start -> End -> Angle
     * - Start -> End -> Direction
     * - Start -> End -> Radius
     *
     * @param context - Current app context.
     * @param start - Arc start point.
     */
    private runStartEndFlow;
    /**
     * Converts degrees to radians.
     *
     * @param degree - Angle in degrees.
     * @returns Angle in radians.
     */
    private degToRad;
}
//# sourceMappingURL=AcApArcCmd.d.ts.map