import * as i0 from '@angular/core';
import { NgZone, EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
import { CloseEvent, DisputeResponseModalData, Components, BatchData, BatchApprovalResponse, BatchApproveData, DisputeData, OsraReviewedData, BatchResult } from '@paycargo/js/dist/components';
export { BatchApprovalResponse, BatchData, TransactionI } from '@paycargo/js/';

declare class PaycargoBatchDisputeWidget {
    protected z: NgZone;
    protected el: HTMLPaycargoBatchDisputeWidgetElement;
    disputeResponseModal: EventEmitter<CustomEvent<CloseEvent<DisputeResponseModalData>>>;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<PaycargoBatchDisputeWidget, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PaycargoBatchDisputeWidget, "paycargo-batch-dispute-widget", never, { "authToken": { "alias": "authToken"; "required": false; }; "businessRules": { "alias": "businessRules"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "env": { "alias": "env"; "required": false; }; "options": { "alias": "options"; "required": false; }; "pcTransactions": { "alias": "pcTransactions"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "widgetStyle": { "alias": "widgetStyle"; "required": false; }; }, { "disputeResponseModal": "disputeResponseModal"; }, never, ["*"], true, never>;
}
declare interface PaycargoBatchDisputeWidget extends Components.PaycargoBatchDisputeWidget {
    /**
     * Event that is triggered after dispute response
  has been received.
     */
    disputeResponseModal: EventEmitter<CustomEvent<CloseEvent<DisputeResponseModalData>>>;
}
declare class PaycargoCheckout {
    protected z: NgZone;
    protected el: HTMLPaycargoCheckoutElement;
    close: EventEmitter<CustomEvent<CloseEvent<BatchData>>>;
    paymentResponse: EventEmitter<CustomEvent<BatchApprovalResponse>>;
    disputeResponse: EventEmitter<CustomEvent<BatchApproveData>>;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<PaycargoCheckout, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PaycargoCheckout, "paycargo-checkout", never, { "onPcClose": { "alias": "onPcClose"; "required": false; }; "onPcDispute": { "alias": "onPcDispute"; "required": false; }; "onPcPayment": { "alias": "onPcPayment"; "required": false; }; "options": { "alias": "options"; "required": false; }; "pcTransactions": { "alias": "pcTransactions"; "required": false; }; }, { "close": "close"; "paymentResponse": "paymentResponse"; "disputeResponse": "disputeResponse"; }, never, ["*"], true, never>;
}
declare interface PaycargoCheckout extends Components.PaycargoCheckout {
    /**
     * Event called when modal is closed.
     */
    close: EventEmitter<CustomEvent<CloseEvent<BatchData>>>;
    /**
     * Event that is triggered after payment response
  has been received.
     */
    paymentResponse: EventEmitter<CustomEvent<BatchApprovalResponse>>;
    /**
     * Event that is triggered after dispute response
  has been received.
     */
    disputeResponse: EventEmitter<CustomEvent<BatchApproveData>>;
}
declare class PaycargoDispute {
    protected z: NgZone;
    protected el: HTMLPaycargoDisputeElement;
    disputeResponse: EventEmitter<CustomEvent<CloseEvent<DisputeData>>>;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<PaycargoDispute, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PaycargoDispute, "paycargo-dispute", never, { "disabled": { "alias": "disabled"; "required": false; }; "onPcClose": { "alias": "onPcClose"; "required": false; }; "onPcDispute": { "alias": "onPcDispute"; "required": false; }; "options": { "alias": "options"; "required": false; }; "pcTransactions": { "alias": "pcTransactions"; "required": false; }; "widgetStyle": { "alias": "widgetStyle"; "required": false; }; }, { "disputeResponse": "disputeResponse"; }, never, ["*"], true, never>;
}
declare interface PaycargoDispute extends Components.PaycargoDispute {
    /**
     * Event that is triggered after dispute response
  has been received from the internal widget.
     */
    disputeResponse: EventEmitter<CustomEvent<CloseEvent<DisputeData>>>;
}
declare class PaycargoOsraWidget {
    protected z: NgZone;
    protected el: HTMLPaycargoOsraWidgetElement;
    osraReviewed: EventEmitter<CustomEvent<OsraReviewedData>>;
    pcOsraWidgetClose: EventEmitter<CustomEvent<CloseEvent<BatchResult>>>;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<PaycargoOsraWidget, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PaycargoOsraWidget, "paycargo-osra-widget", never, { "businessRules": { "alias": "businessRules"; "required": false; }; "hideButton": { "alias": "hideButton"; "required": false; }; "loadMultiWidget": { "alias": "loadMultiWidget"; "required": false; }; "pcTransaction": { "alias": "pcTransaction"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, { "osraReviewed": "osraReviewed"; "pcOsraWidgetClose": "pcOsraWidgetClose"; }, never, ["*"], true, never>;
}
declare interface PaycargoOsraWidget extends Components.PaycargoOsraWidget {
    /**
     * Event Triggered when All OSRA transactions
  have been reviewed by user.
     */
    osraReviewed: EventEmitter<CustomEvent<OsraReviewedData>>;
    /**
     * Close of the Osra Component
     */
    pcOsraWidgetClose: EventEmitter<CustomEvent<CloseEvent<BatchResult>>>;
}
declare class PaycargoPayment {
    protected z: NgZone;
    protected el: HTMLPaycargoPaymentElement;
    paymentResponseModal: EventEmitter<CustomEvent<BatchApprovalResponse>>;
    onTransactionEditEvent: EventEmitter<CustomEvent<string>>;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<PaycargoPayment, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PaycargoPayment, "paycargo-payment", never, { "actionHandlers": { "alias": "actionHandlers"; "required": false; }; "cartAmplitudeParams": { "alias": "cartAmplitudeParams"; "required": false; }; "options": { "alias": "options"; "required": false; }; "pcTransactions": { "alias": "pcTransactions"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "paymentResponseModal": "paymentResponseModal"; "onTransactionEditEvent": "onTransactionEditEvent"; }, never, ["*"], true, never>;
}
declare interface PaycargoPayment extends Components.PaycargoPayment {
    /**
     * Event that is triggered after payment response
  has been received.
     */
    paymentResponseModal: EventEmitter<CustomEvent<BatchApprovalResponse>>;
    /**
     * Event that emits when action button is clicked
  has been received.
     */
    onTransactionEditEvent: EventEmitter<CustomEvent<string>>;
}

declare const DIRECTIVES: (typeof PaycargoBatchDisputeWidget | typeof PaycargoCheckout | typeof PaycargoDispute | typeof PaycargoOsraWidget | typeof PaycargoPayment)[];

declare class PayCargoCheckoutModule {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<PayCargoCheckoutModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PayCargoCheckoutModule, never, [typeof PaycargoBatchDisputeWidget, typeof PaycargoCheckout, typeof PaycargoDispute, typeof PaycargoOsraWidget, typeof PaycargoPayment], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PayCargoCheckoutModule>;
}

export { DIRECTIVES, PayCargoCheckoutModule, PaycargoBatchDisputeWidget, PaycargoCheckout, PaycargoDispute, PaycargoOsraWidget, PaycargoPayment };
