import { ConnectionService } from '../../api/connection.service';
import { Constants } from '../../core.consts';
import { CartService } from '../cart.service';
import { CheckoutService } from './checkout.service';
import { StepService } from '../../classes/checkout/step-service';
import { AnalyticsService } from '../analytics.service';
import { Validators } from '@angular/forms';
declare type typeForms = 'EUR' | 'ARG';
declare type typeSelectAddress = 'ONLY_LOAD_ADDRESS' | 'ONLY_ADDRESS_SELECTION' | 'LOAD_ADDRESS_AND_SELECTION';
export declare class AddressingService extends StepService {
    private connection;
    private consts;
    private cartService;
    private checkoutService;
    private analyticsService;
    baseApi: () => string;
    countriesApi: () => string;
    zonesApi: () => string;
    provincesApi: () => string;
    putAddressApi: () => string;
    addressBookApi: () => string;
    headquarterApi: () => string;
    typeForms: typeForms;
    modeSelectAddress: typeSelectAddress;
    countriesList: any[];
    documentTypes: any[];
    provinceList: any[];
    constructor(connection: ConnectionService, consts: Constants, cartService: CartService, checkoutService: CheckoutService, analyticsService: AnalyticsService);
    ngOnInit(): void;
    getAddressingData: () => Promise<any>;
    getAddressBook: () => Promise<any>;
    setHeadquarter: (sede: any) => Promise<any>;
    setAddress: (user_data: any) => Promise<any>;
    putAddressAndHandle: (user_data: any, next?: any, onError?: any) => void;
    getTypeForm: () => {
        code: string;
        configForm: {
            formAddres: {
                firstName: (string | (typeof Validators.required)[])[];
                lastName: (string | (typeof Validators.required)[])[];
                phoneNumber: (string | import("@angular/forms").ValidatorFn[])[];
                email: (string | (typeof Validators.required)[])[];
                documentType: (string | any[])[];
                documentNumber: (string | any[])[];
                street: (string | import("@angular/forms").ValidatorFn[])[];
                countryCode: (typeof Validators.required)[][];
                city: (string | typeof Validators.required)[];
                provinceCode: (typeof Validators.required)[][];
                postcode: (string | typeof Validators.required)[];
                terms: (typeof Validators.required)[];
                notes: string[];
            };
            formBilling: {
                firstName: (string | (typeof Validators.required)[])[];
                lastName: (string | (typeof Validators.required)[])[];
                phoneNumber: (string | import("@angular/forms").ValidatorFn[])[];
                email: (string | (typeof Validators.required)[])[];
                documentType: (string | any[])[];
                documentNumber: (string | any[])[];
                street: (string | import("@angular/forms").ValidatorFn[])[];
                countryCode: (typeof Validators.required)[][];
                city: (string | typeof Validators.required)[];
                provinceCode: (typeof Validators.required)[][];
                postcode: (string | typeof Validators.required)[];
                notes: string[];
            };
        };
        viewForms: {
            firstName: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            lastName: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            phoneNumber: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            email: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            documentType: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            documentNumber: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            street: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            countryCode: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            city: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            provinceCode: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            postcode: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            terms: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            notes: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
        };
    } | {
        code: string;
        configForm: {
            formAddres: {
                firstName: (string | (typeof Validators.required)[])[];
                lastName: (string | (typeof Validators.required)[])[];
                phoneNumber: (string | import("@angular/forms").ValidatorFn[])[];
                email: (string | (typeof Validators.required)[])[];
                documentType: (string | (typeof Validators.required)[])[];
                documentNumber: (string | (typeof Validators.required)[])[];
                street: (string | import("@angular/forms").ValidatorFn[])[];
                countryCode: (typeof Validators.required)[][];
                city: (string | typeof Validators.required)[];
                provinceCode: (typeof Validators.required)[][];
                postcode: (string | typeof Validators.required)[];
                notes: string[];
                terms?: undefined;
            };
            formBilling: {
                firstName: (string | (typeof Validators.required)[])[];
                lastName: (string | (typeof Validators.required)[])[];
                phoneNumber: (string | import("@angular/forms").ValidatorFn[])[];
                email: (string | (typeof Validators.required)[])[];
                documentType: (string | (typeof Validators.required)[])[];
                documentNumber: (string | (typeof Validators.required)[])[];
                street: (string | import("@angular/forms").ValidatorFn[])[];
                countryCode: (typeof Validators.required)[][];
                city: (string | typeof Validators.required)[];
                provinceCode: (typeof Validators.required)[][];
                postcode: (string | typeof Validators.required)[];
                notes: string[];
            };
        };
        viewForms: {
            firstName: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            lastName: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            phoneNumber: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            email: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            documentType: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            documentNumber: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            street: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            countryCode: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            city: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            provinceCode: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            postcode: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            terms: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
            notes: {
                enabled: boolean;
                required: boolean;
                values: any[];
            };
        };
    };
    setTypeSelectAddress: (type: typeSelectAddress) => void;
    setTypeForms: (type: typeForms) => void;
}
export {};
