import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; export interface FeedbackDialogProps { readonly onSubmit: (feedbackText: string) => void; readonly onCancel: () => void; } export interface FeedbackDialogState { readonly isSubmitting: boolean; readonly error?: string; readonly submitted: boolean; } export interface FeedbackDialogComponent { readonly element: HTMLElement; update(props: FeedbackDialogProps, state: FeedbackDialogState): void; } export declare function createFeedbackDialog(): FeedbackDialogComponent; /** * Mount the feedback dialog into a container, returning a controller to * update state and unmount. */ export declare class FeedbackDialogController extends Disposable { private readonly _container; private readonly _onSubmit; private readonly _onClose; private _state; private readonly _dialog; constructor(_container: HTMLElement, _onSubmit: (feedbackText: string) => Promise<{ ok: boolean; error?: string; }>, _onClose: () => void); private _render; private _handleSubmit; dispose(): void; }