interface TourState {
    currentTour: any;
    legs: any[];
    publicTours: any[];
    userRole: string | null;
    activeLegId: string | null;
    mapCenter: [number, number];
    setTour: (tour: any) => void;
    updateLegs: (legs: any[]) => void;
    createTour: (tourData: any) => Promise<any>;
    updateTour: (id: string, data: any) => Promise<void>;
    deleteTour: (id: string) => Promise<void>;
    addLeg: (tourId: string, data: any) => Promise<void>;
    initializeLegs: (tourId: string, count: number) => Promise<void>;
    updateLeg: (legId: string, data: any) => Promise<void>;
    deleteLeg: (legId: string) => Promise<void>;
    addLocation: (tourId: string, locationData: any) => Promise<void>;
    updateLocation: (locationId: string, data: any) => Promise<void>;
    deleteLocation: (locationId: string) => Promise<void>;
    updateTourStartPoint: (tourId: string, data: any) => Promise<void>;
    updateTourEndPoint: (tourId: string, data: any) => Promise<void>;
    optimizeRouting: (legId: string) => Promise<void>;
    addMember: (tourId: string, member: {
        userId: string;
        role?: string;
    }) => Promise<any>;
    removeMember: (tourId: string, userId: string) => Promise<void>;
    setActiveLegId: (id: string | null) => void;
    setMapCenter: (pos: [number, number]) => void;
    fetchTour: (id: string) => Promise<void>;
    fetchPublicTours: () => Promise<void>;
    createJoinRequest: (tourId: string, userId?: string) => Promise<any>;
    fetchJoinRequests: (tourId: string) => Promise<any[]>;
    acceptJoinRequest: (tourId: string, requestId: string) => Promise<any>;
    rejectJoinRequest: (tourId: string, requestId: string) => Promise<any>;
}
export declare const useTourStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TourState>>;
export {};
