interface BanglaDate {
    year: number;
    date: number;
    month: string;
    day: string;
    season: string;
}
interface BongabdoOptions {
    date?: Date | string;
    format?: string;
    showSeason?: boolean;
    showWeekDays?: boolean;
    convertToBanglaDigits?: boolean;
}

/**
 * Convert a Gregorian date to Bengali calendar date
 */
declare function convertToBanglaDate(givenDate: Date): BanglaDate;

/**
 * Format a Bengali date according to the specified format
 */
declare function formatBanglaDate(banglaDate: BanglaDate, options?: BongabdoOptions): string;

/**
 * Check if a year is a leap year
 */
declare function isLeapYear(year: number): boolean;
/**
 * Convert English digits to Bengali digits
 */
declare function convertToBanglaDigits(text: string): string;
/**
 * Parse date input to Date object
 */
declare function parseDateInput(dateInput?: Date | string): Date;

declare const BANGLA_MONTHS: readonly ["বৈশাখ", "জ্যৈষ্ঠ", "আষাঢ়", "শ্রাবণ", "ভাদ্র", "আশ্বিন", "কার্তিক", "অগ্রহায়ণ", "পৌষ", "মাঘ", "ফাল্গুন", "চৈত্র"];
declare const WEEK_DAYS: readonly ["রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"];
declare const BANGLA_SEASONS: readonly ["গ্রীষ্ম", "বর্ষা", "শরৎ", "হেমন্ত", "শীত", "বসন্ত"];
declare const TOTAL_MONTH_DAYS: readonly [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30];
declare const BANGLA_DIGITS: Record<string, string>;
declare const DEFAULT_FORMAT = "DD MM, YY";

/**
 * Main function to convert a Gregorian date to Bengali calendar format
 */
declare function bongabdo(dateInput?: Date | string, options?: BongabdoOptions): string;
/**
 * Get raw Bengali date object without formatting
 */
declare function getBanglaDate(dateInput?: Date | string): BanglaDate;
/**
 * Format an existing Bengali date object
 */
declare function formatBanglaDateOnly(banglaDate: BanglaDate, options?: BongabdoOptions): string;

export { BANGLA_DIGITS, BANGLA_MONTHS, BANGLA_SEASONS, type BanglaDate, type BongabdoOptions, DEFAULT_FORMAT, TOTAL_MONTH_DAYS, WEEK_DAYS, bongabdo, convertToBanglaDate, convertToBanglaDigits, formatBanglaDate, formatBanglaDateOnly, getBanglaDate, isLeapYear, parseDateInput };
