import { VuexModule } from "vuex-module-decorators";
import { Store } from "vuex";
import ShipmentPoint from "../dto/ShipmentPoint";
import Country from "../dto/Country";
import Place from "../dto/Place";
import Currency from "../dto/Currency";
import CalculatedDelivery from "../dto/CalculatedDelivery";
import ShipmentPointsGroup from "../dto/ShipmentPointsGroup";
import { Dimensions } from "../dto/Dimensions";
export default class DeliveryCalculatorStore extends VuexModule {
    shipmentPoints: ShipmentPoint[];
    shipmentPoint: ShipmentPoint | null;
    country: Country | null;
    place: Place | null;
    dimensions: Dimensions;
    weight: number | null;
    price: number | null;
    currency: Currency;
    deliveries: CalculatedDelivery[] | null;
    deliveryPoints: CalculatedDelivery[] | null;
    errors: {
        [key: string]: string;
    };
    get isCalculated(): boolean;
    get isNotFound(): boolean;
    get shipmentPointGroups(): ShipmentPointsGroup[];
    setShipmentPoints(points: ShipmentPoint[]): void;
    setErrors(errors: {
        [key: string]: string;
    }): void;
    setShipmentPoint(shipmentPoint: ShipmentPoint): void;
    setCountry(country: Country): void;
    setPlace(place: Place): void;
    setWeight(value: number | null): void;
    setPrice(value: number | null): void;
    setDimensions(dimensions: Dimensions): void;
    setCurrency(currency: Currency): void;
    setResult({ deliveries, deliveryPoints, }: {
        deliveries: CalculatedDelivery[];
        deliveryPoints: CalculatedDelivery[];
    }): void;
    clearResult(): void;
    loadShipmentPoints(): Promise<void>;
    calculateDeliveries(): Promise<void>;
}
export declare function getDeliveryCalculatorStore(store: Store<any>): DeliveryCalculatorStore;
