import { OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
import { StripeCardCvcElement, StripeCardCvcElementChangeEvent, StripeCardExpiryElement, StripeCardExpiryElementChangeEvent, StripeCardNumberElement, StripeCardNumberElementChangeEvent, StripeElements, StripeElementsOptions } from '@stripe/stripe-js';
import { StripeServiceInterface } from '../interfaces/stripe-instance.interface';
import { StripeElementsService } from '../services/stripe-elements.service';
import * as i0 from "@angular/core";
type NgxStripeCardGroupChangeEvent = StripeCardNumberElementChangeEvent | StripeCardExpiryElementChangeEvent | StripeCardCvcElementChangeEvent;
type NgxStripeCardGroupElements = StripeCardNumberElement | StripeCardExpiryElement | StripeCardCvcElement;
export declare class StripeCardGroupDirective implements OnInit, OnChanges {
    stripeElementsService: StripeElementsService;
    elementsOptions: Partial<StripeElementsOptions>;
    stripe: StripeServiceInterface;
    elements: EventEmitter<StripeElements>;
    load: EventEmitter<NgxStripeCardGroupElements>;
    blur: EventEmitter<void>;
    change: EventEmitter<NgxStripeCardGroupChangeEvent>;
    focus: EventEmitter<void>;
    ready: EventEmitter<void>;
    escape: EventEmitter<void>;
    _elements: StripeElements;
    state: 'notready' | 'starting' | 'ready';
    constructor(stripeElementsService: StripeElementsService);
    ngOnChanges(changes: SimpleChanges): Promise<void>;
    ngOnInit(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<StripeCardGroupDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<StripeCardGroupDirective, "ngx-stripe-card-group,[ngxStripeCardGroup]", never, { "elementsOptions": { "alias": "elementsOptions"; "required": false; }; "stripe": { "alias": "stripe"; "required": false; }; }, { "elements": "elements"; "load": "load"; "blur": "blur"; "change": "change"; "focus": "focus"; "ready": "ready"; "escape": "escape"; }, never, never, true, never>;
}
export {};
