// Type definitions for @bidyashish/panchang
export interface Location {
    latitude: number;
    longitude: number;
    timezone: string;
    altitude?: number;
}

export interface PanchangaResult {
    tithi: { name: string; number: number };
    nakshatra: { name: string; number: number };
    yoga: { name: string; number: number };
    karana: { name: string; number: number };
    vara: { name: string; number: number };
    sunrise: string;
    sunset: string;
}

export interface PlanetPosition {
    longitude: number;
    latitude: number;
    distance: number;
    longitudeSpeed: number;
}

export declare class AstronomicalCalculator {
    constructor();
    calculatePanchanga(date: Date, latitude: number, longitude: number, timezone: string): Promise<PanchangaResult>;
    calculateSunrise(date: Date, latitude: number, longitude: number, timezone: string): Promise<Date>;
    calculateSunset(date: Date, latitude: number, longitude: number, timezone: string): Promise<Date>;
    calculatePlanetPosition(planet: string, date: Date): Promise<PlanetPosition>;
    calculateMoonPhase(date: Date): Promise<number>;
}

export declare function getPanchanga(
    date: Date, 
    latitude: number, 
    longitude: number, 
    timezone: string
): Promise<PanchangaResult>;

export declare function getPanchangaReport(
    date: Date, 
    latitude: number, 
    longitude: number, 
    timezone: string
): Promise<string>;

export * from './types/astronomical';
export * from './panchanga/index';
export * from './calculations/ephemeris';
export * from './calculations/planetary';