import { Event, EventEmitter } from '../../stencil-public-runtime'; export declare class FeedbackModal { scrollTimeout: any; feedbackEventsEnabled: boolean; sending: boolean; formMessage: string; formEmail: string; formSuccess: boolean; formVerification: string; formError: boolean; formErrorStatus: number; encodedScreenshot: string; isPrivacyChecked: boolean; whitelabel: boolean; selectedRating: number; overlayVisible: boolean; isAnimating: boolean; recaptchaEnabled: boolean; recaptchaSiteKey: string; takingScreenshot: boolean; showScreenshotError: boolean; screenshotError: string; showCanvasEditor: boolean; autoStartCapture: boolean; positioningScreenshot: boolean; canvasEditorRef: HTMLCanvasEditorElement; screenshotButtonRef: HTMLButtonElement; positionCaptureButtonRef: HTMLButtonElement; positionerRef: HTMLElement; private shouldFocusPositionCapture; /** * Optional API key sent with feedback submissions, for projects that * require one. Sent as `Authorization: Api-Key ` on the feedback POST * request only, never on the public config request. Only use keys scoped to * `feedback:submit`: like any credential used by an embedded widget, the * value is part of the page and readable by any script running on it, so it * provides server-side scoping and traceability rather than client-side * secrecy. Intended for internal or access-controlled pages. */ apiKey: string; customFont: boolean; emailAddress: string; hideEmail: boolean; isEmailRequired: boolean; ratingMode: string; hasSelectedElement: boolean; hidePrivacyPolicy: boolean; hideRating: boolean; hideScreenshotButton: boolean; /** Show the page-positioning step before capture outside embedded mode. */ screenshotPositioning: boolean; project: string; showScreenshotMode: boolean; showScreenshotTopBar: boolean; showModal: boolean; rating: number; metadata: ''; fetchData: boolean; embedded: boolean; clickOutsideClose: boolean; historyClose: boolean; escapeClose: boolean; handleShowModalChange(showModal: boolean): void; emailPlaceholder: string; errorMessage: string; errorMessage401: string; errorMessage403: string; errorMessage404: string; messagePlaceholder: string; footerText: string; modalPosition: string; modalTitle: string; modalTitleError: string; modalTitleSuccess: string; privacyPolicyText: string; ratingPlaceholder: string; ratingStarsPlaceholder: string; sendButtonText: string; closeButtonLabel: string; ratingPositiveLabel: string; ratingNegativeLabel: string; ratingStarLabel: string; successMessage: string; recaptchaText: string; screenshotAttachedText: string; screenshotButtonText: string; screenshotTakingText: string; screenshotPositioningText: string; screenshotPositioningCaptureText: string; screenshotPositioningCancelText: string; screenshotEditTextButtonText: string; screenshotEditorTitle: string; screenshotEditorCancelText: string; screenshotEditorSaveText: string; screenshotSizeLabelText: string; screenshotBorderLabelText: string; screenshotEditTextPromptText: string; screenshotErrorGeneral: string; screenshotErrorPermission: string; screenshotErrorNotSupported: string; screenshotErrorNotFound: string; screenshotErrorCancelled: string; screenshotErrorBrowserNotSupported: string; screenshotErrorUnexpected: string; feedbackSent: EventEmitter<{ feedback: any; }>; feedbackError: EventEmitter<{ error: any; }>; modalContent: HTMLElement; private historyEntryPushed; private historyEntryId; private previouslyFocused; connectedCallback(): void; disconnectedCallback(): void; handleKeyDown: (event: KeyboardEvent) => void; private trapFocus; private isFocusable; private getFocusableElements; private focusModal; private restoreFocus; handlePopState: () => void; private initialRating; componentWillLoad(): void; /** * Emit feedbackSent, when the project's plan includes JavaScript events. * * Events are a delivery channel like Slack or a webhook, so they follow the * same rule: the service decides, the widget displays the answer. Submitting * feedback itself is never gated - only whether the page is told about it. */ private emitFeedbackSent; private emitFeedbackError; fetchProjectData(): Promise; loadRecaptchaScript(): void; getRecaptchaToken(): Promise; onScrollDebounced: () => void; resetOverflow(): void; handleMessageInput(event: Event): void; handleEmailInput(event: Event): void; handleSubmit: (event: Event) => Promise; close: () => void; handleOverlayClick: () => void; doClose: (preserveInput: boolean) => void; popHistoryEntry(): void; handleScreenshotReady: (event: CustomEvent<{ screenshot: string; }>) => void; handleScreenshotCancelled: () => void; handleScreenshotError: (event: CustomEvent<{ error: string; }>) => void; openScreenShot: () => void; startScreenshotCapture: () => void; cancelScreenshotPositioning: () => void; openCanvasEditor: (event?: Event) => void; handleCheckboxChange(event: any): void; handleVerification(event: Event): void; handleRatingChange(newRating: number): void; render(): any; componentDidRender(): void; openModal(): Promise; }