/**
 * Copyright © 2014-2026 PDF Technologies, Inc. All Rights Reserved.
 *
 * THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
 * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
 * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
 * This notice may not be removed from this file.
 */

import { CPDFConfigTool, CPDFWidgetType } from "../CPDFOptions";
import { CPDFWidgetAttr } from "../attributes/CPDFWidgetAttr";

/**
 * @class CPDFFormConfig
 * @group Configuration
 */
export interface CPDFFormConfig {
    /**
     * In {@link CPDFViewMode.FORMS} mode, the list of form types at the bottom of the view.
     */
    availableTypes?: CPDFWidgetType[];

    /**
     * Only supports {@link CPDFConfigTool.UNDO} and  {@link CPDFConfigTool.UNDO} .
     */
    availableTools?: CPDFConfigTool[];

    /**
     * Whether to show the create list box options dialog when creating a list box.
     * Default: true
     */
    showCreateListBoxOptionsDialog?: boolean;

    /**
     * Whether to show the create combo box options dialog when creating a combo box.
     * Default: true
     */
    showCreateComboBoxOptionsDialog?: boolean;

    /**
     * Whether to show the create push button options dialog when creating a push button.
     * Default: true
     */
    showCreatePushButtonOptionsDialog?: boolean;

    /**
     * Whether to intercept all form widget click actions.
     * Default: false
     */
    interceptAllFormWidgetActions?: boolean;

    /**
     * Form widget types whose click actions should be intercepted.
     * Values should use {@link CPDFWidgetType}, such as `listBox`, `comboBox`, or `signaturesFields`.
     * Default: []
     */
    interceptFormWidgetActions?: CPDFWidgetType[];

    /**
     * Form default attribute configuration
     */
    initAttribute?: CPDFWidgetAttr;
  }
