import { Repository } from 'typeorm';
import { ErrorService } from '../../error/error.service';
import { CreateAddressDto } from './dto/create-address.dto';
import { UpdateAddressDto } from './dto/update-address.dto';
import { AddressEntity } from './entities/address.entity';
import { CityEntity } from './entities/city.entity';
import { StateEntity } from './entities/state.entity';
export declare class AddressService {
    private addressRepository;
    private cityRepository;
    private stateRepository;
    private error;
    constructor(addressRepository: Repository<AddressEntity>, cityRepository: Repository<CityEntity>, stateRepository: Repository<StateEntity>, error: ErrorService);
    getAll(page?: number, limit?: number, filters?: any, sorts?: any, userId?: any): Promise<{
        items: {
            lat: string;
            lng: string;
            id: number;
            name: string;
            address: string;
            location: string;
            userId: string;
            cityId: number;
            deleted: boolean;
            createdAt: Date;
            updatedAt: Date;
            user: import("../user/entities/user.entity").UserEntity;
            city: CityEntity;
            orders: import("../order/entities/order.entity").OrderEntity[];
        }[];
        pagination: {
            itemsPerPage: number;
            totalItems: number;
            currentPage: number;
            totalPages: number;
        };
    }>;
    getById(id: number, userId?: any): Promise<{
        lat: string;
        lng: string;
        id: number;
        name: string;
        address: string;
        location: string;
        userId: string;
        cityId: number;
        deleted: boolean;
        createdAt: Date;
        updatedAt: Date;
        user: import("../user/entities/user.entity").UserEntity;
        city: CityEntity;
        orders: import("../order/entities/order.entity").OrderEntity[];
    }>;
    addByAdmin(dto: CreateAddressDto): Promise<{
        lat: string;
        lng: string;
        id: number;
        name: string;
        address: string;
        location: string;
        userId: string;
        cityId: number;
        deleted: boolean;
        createdAt: Date;
        updatedAt: Date;
        user: import("../user/entities/user.entity").UserEntity;
        city: CityEntity;
        orders: import("../order/entities/order.entity").OrderEntity[];
    }>;
    updateByAdmin(id: number, dto: UpdateAddressDto): Promise<import("typeorm").UpdateResult>;
    deleteAddress(id: number): Promise<import("typeorm").UpdateResult>;
    getAllStates(): Promise<StateEntity[]>;
    getAllCities(): Promise<CityEntity[]>;
    private _findBuilder;
    getRecordById(id: number, userId?: string): Promise<AddressEntity>;
    calculateShipping(addressId: number): Promise<{
        price: number;
        address: any;
        city: any;
        cityFa: any;
        distance: any;
        duration: any;
        transportType: any;
        title: any;
    }>;
    private _findTransform;
}
