import { BaseService } from './base.service';
import { ConfigService } from './config.service';
/**
 * Service for managing form data and submission
 */
export declare class FormService extends BaseService<Record<string, Record<string, any>>> {
    private configService;
    private fieldErrorsService;
    constructor(initialFormData: Record<string, Record<string, any>>, configService: ConfigService, fieldErrorsService: BaseService<Record<string, Record<string, string>>>, stepsValidityService: BaseService<Record<string, boolean>>);
    /**
     * Update a field value
     * @param stepId Step ID
     * @param fieldId Field ID
     * @param value New field value
     */
    updateField(stepId: string, fieldId: string, value: any): void;
    /**
     * Get form data for a specific step
     * @param stepId Step ID
     * @returns Step data or empty object if step doesn't exist
     */
    getStepData(stepId: string): Record<string, any>;
    /**
     * Get all form data
     * @returns Complete form data
     */
    getAllData(): Record<string, Record<string, any>>;
    /**
     * Get flattened form data (merged from all steps)
     * @returns Flattened form data
     */
    getFlatData(): Record<string, any>;
    /**
     * Reset form data to initial values
     * @param defaultValues Optional custom default values
     */
    resetForm(defaultValues?: Record<string, any>): void;
    /**
     * Handle form submission logic with integrated validation
     * @param validateAndMarkTouched Function to validate the entire form and mark fields touched
     * @param findFirstInvalidStep Function to find the first invalid step
     * @param goToStep Function to navigate to a step by index
     * @returns Submission result object
     */
    submitForm(validateAndMarkTouched: () => boolean, findFirstInvalidStep: () => number, goToStep: (index: number) => void): {
        success: boolean;
        data?: any;
        errors?: any;
    };
    /**
     * Completely reset the form, touch tracking, and validation state
     * @param resetTouchTracking Function to reset touch tracking
     * @param validateForm Function to validate the entire form
     */
    completeReset(resetTouchTracking: () => void, validateForm: () => void): void;
}
