/**
 * VulForm API Client
 * Handles all API communication with VulForm backend
 */
import { ApiClientConfig, FormTemplate, SubmissionRequest, SubmissionResponse, AnalyticsEvent, ExportRequest, ExportResult, FieldValidation } from '../types';
export declare class VulFormApiClient {
    private config;
    constructor(config: ApiClientConfig);
    private resolveBaseUrl;
    /**
     * Get form template by ID
     */
    getTemplate(templateId: string): Promise<FormTemplate>;
    /**
     * Submit form data
     */
    submitForm(data: SubmissionRequest): Promise<SubmissionResponse>;
    /**
     * Validate individual field
     */
    validateField(field: string, value: any, validation: FieldValidation): Promise<string | null>;
    /**
     * Track analytics event
     */
    trackEvent(event: AnalyticsEvent): Promise<void>;
    /**
     * Export form template as code
     */
    exportTemplate(request: ExportRequest): Promise<ExportResult>;
    /**
     * Client-side field validation
     */
    private validateFieldClientSide;
    /**
     * Basic email validation
     */
    private isValidEmail;
    /**
     * Make HTTP request with retry logic
     */
    private makeRequest;
    /**
     * Sleep utility for retries
     */
    private sleep;
}
/**
 * VulForm Error class
 */
export declare class VulFormError extends Error {
    code: string;
    statusCode?: number;
    details?: any;
    constructor(code: string, message: string, statusCode?: number, details?: any);
}
export default VulFormApiClient;
//# sourceMappingURL=api-client.d.ts.map