import { Database } from "../types/supabase";
import { IPin, PinInsert } from "../types/db";
import { IWebResponseCompatible } from "../types/requests";
import { SupabaseClient } from "@supabase/supabase-js";
export declare function get_pins_for_herd(client: SupabaseClient<Database>, herd_id: number): Promise<IWebResponseCompatible<IPin[]>>;
export declare function get_pin_by_id(client: SupabaseClient<Database>, pin_id: number): Promise<IWebResponseCompatible<IPin | null>>;
export declare function create_pin(client: SupabaseClient<Database>, newPin: PinInsert): Promise<IWebResponseCompatible<IPin | null>>;
export declare function create_pin_with_coordinates(client: SupabaseClient<Database>, latitude: number, longitude: number, pinData: Omit<PinInsert, "location">): Promise<IWebResponseCompatible<IPin | null>>;
export declare function update_pin(client: SupabaseClient<Database>, pin_id: number, updatedPin: Partial<PinInsert>): Promise<IWebResponseCompatible<IPin | null>>;
export declare function update_pin_location(client: SupabaseClient<Database>, pin_id: number, latitude: number, longitude: number, updatedPin?: Partial<Omit<PinInsert, "location">>): Promise<IWebResponseCompatible<IPin | null>>;
export declare function delete_pin(client: SupabaseClient<Database>, pin_id: number): Promise<IWebResponseCompatible<IPin | null>>;
export declare function get_pins_by_created_by(client: SupabaseClient<Database>, user_id: string): Promise<IWebResponseCompatible<IPin[]>>;
export declare function get_pins_by_color(client: SupabaseClient<Database>, herd_id: number, color: string): Promise<IWebResponseCompatible<IPin[]>>;
