import { LitElement, CSSResultGroup, HTMLTemplateResult } from 'lit';
/** Event name fired when form is submitted with valid data */
export declare const EVENT_FORM_SUBMIT = "pd-form-submit";
export declare abstract class PdFormDialog extends LitElement {
/** Form data object - managed by subclass */
protected abstract _formData: T;
/** Dialog title text */
protected abstract _dialogTitle: string;
/** Text for the save/submit button */
saveButtonText: string;
/** Text for the cancel button */
cancelButtonText: string;
/** Whether to show required field info text */
showRequiredFieldInfo: boolean;
/** Timeout in ms to disable save button after submit (prevents double-submit) */
submitDisableTimeout: number;
/** Enable closing with Escape key */
closeByEscape: boolean;
/** Enable closing by clicking the backdrop overlay */
closeByBackdrop: boolean;
/** Block body scroll when dialog is open */
blockScroll: boolean;
/** Whether the form is currently valid */
protected _validForm: boolean;
/** Common validation error message to display */
protected _validationError?: string;
/** Internal button configuration */
private _buttons;
/** Track whether this instance has locked body scroll */
private _scrollBlocked;
private _formContainer;
static styles: CSSResultGroup;
constructor();
connectedCallback(): void;
disconnectedCallback(): void;
render(): import('lit').TemplateResult<1>;
/** Render the form fields content */
protected abstract _renderContent(): HTMLTemplateResult;
/**
* Additional validation beyond form field validation.
* Return true if form data is valid.
*/
protected abstract _isValidFormData(): boolean;
/** Reset the form to initial state */
reset(): void;
/**
* Handle button click events.
* Can be overridden for custom behavior.
*/
protected _handleButtonClick(e: CustomEvent<{
button: string;
}>): void;
private _initializeButtons;
private _getButtons;
private _handleFormChange;
private _disableSaveButtonTemporarily;
}
//# sourceMappingURL=PdFormDialog.d.ts.map