///
import { FormPageState, ReportBI, WixPatternsContainer } from '@wix/bex-core';
import { FieldValues, UseFormReturn } from 'react-hook-form';
import { SettingsPageStateBIReporter } from './SettingsPageStateBIReporter';
import { TypedEmitter } from '@wix/bex-core/events';
export interface SettingsPageStateParams {
/**
* A function that fetches the settings data.
* @returns a promise that resolves to an object containing the settings.
*/
fetch: () => Promise<{
settings: T | undefined;
}>;
/**
* A function to handle the save action.
*/
onSave: () => Promise;
/**
* A function to handle the cancel action.
*/
onCancel: () => Promise;
/**
* An optional object with an optional message, or it can directly get a string message.
*/
saveSuccessToast?: {
message?: string;
} | string;
/**
* An optional function to display an error toast message when a save operation fails.
* @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.
* The previous return types are still supported but are now deprecated.
*/
saveErrorToast?: (err: unknown, params: {
retry: () => void;
}) => {
message?: string;
/**
* @deprecated use `action` instead
*/
tryAgain?: boolean;
action?: {
text: string;
onClick: () => void;
};
} | string;
form: UseFormReturn;
/**
* An object representing the container, possibly for dependency injection or component management.
*/
container: WixPatternsContainer;
}
export interface SettingsPageStateInterface {
}
export declare class SettingsPageState implements SettingsPageStateInterface {
readonly fetch: SettingsPageStateParams['fetch'];
readonly _onSave: SettingsPageStateParams['onSave'];
readonly _onCancel: SettingsPageStateParams['onCancel'];
readonly saveSuccessToast?: SettingsPageStateParams['saveSuccessToast'];
readonly saveErrorToast?: SettingsPageStateParams['saveErrorToast'];
_settings: T | null;
readonly container: WixPatternsContainer;
readonly reportBI: ReportBI;
readonly bi: SettingsPageStateBIReporter;
readonly formPage: FormPageState;
readonly events: TypedEmitter<{
save: () => void;
saveError: (err: unknown) => void;
}>;
constructor(params: SettingsPageStateParams);
init(): () => void;
retryFetch(): void;
setSettings(newSettings: T | null): void;
get settings(): T | null;
get isFetching(): boolean;
get form(): UseFormReturn;
get isDirty(): boolean;
onCancel(): void;
_showErrorToast(err: any, e?: React.BaseSyntheticEvent): void;
_showSuccessToast(): void;
handleSubmit(e?: React.BaseSyntheticEvent): Promise;
get initTask(): import("@wix/bex-core").TaskState;
get submitTask(): import("@wix/bex-core").TaskState;
}
//# sourceMappingURL=SettingsPageState.d.ts.map