import { z } from 'zod';
import { SunEventType } from '../types/sun.js';
/**
 * Parameters for getting sun times
 */
export declare const SunTimesParamsSchema: z.ZodObject<{
    date: z.ZodOptional<z.ZodString>;
    latitude: z.ZodNumber;
    longitude: z.ZodNumber;
    format: z.ZodOptional<z.ZodEnum<["json", "text"]>>;
    timezone: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    latitude: number;
    longitude: number;
    date?: string | undefined;
    format?: "text" | "json" | undefined;
    timezone?: string | undefined;
}, {
    latitude: number;
    longitude: number;
    date?: string | undefined;
    format?: "text" | "json" | undefined;
    timezone?: string | undefined;
}>;
export type SunTimesParams = z.infer<typeof SunTimesParamsSchema>;
/**
 * Parameters for getting sun times for a date range
 */
export declare const SunTimesRangeParamsSchema: z.ZodObject<{
    start_date: z.ZodString;
    end_date: z.ZodString;
    latitude: z.ZodNumber;
    longitude: z.ZodNumber;
    format: z.ZodOptional<z.ZodEnum<["json", "text"]>>;
    timezone: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    latitude: number;
    longitude: number;
    start_date: string;
    end_date: string;
    format?: "text" | "json" | undefined;
    timezone?: string | undefined;
}, {
    latitude: number;
    longitude: number;
    start_date: string;
    end_date: string;
    format?: "text" | "json" | undefined;
    timezone?: string | undefined;
}>;
export type SunTimesRangeParams = z.infer<typeof SunTimesRangeParamsSchema>;
/**
 * Parameters for getting sun position
 */
export declare const SunPositionParamsSchema: z.ZodObject<{
    date: z.ZodOptional<z.ZodString>;
    time: z.ZodOptional<z.ZodString>;
    latitude: z.ZodNumber;
    longitude: z.ZodNumber;
    format: z.ZodOptional<z.ZodEnum<["json", "text"]>>;
}, "strip", z.ZodTypeAny, {
    latitude: number;
    longitude: number;
    time?: string | undefined;
    date?: string | undefined;
    format?: "text" | "json" | undefined;
}, {
    latitude: number;
    longitude: number;
    time?: string | undefined;
    date?: string | undefined;
    format?: "text" | "json" | undefined;
}>;
export type SunPositionParams = z.infer<typeof SunPositionParamsSchema>;
/**
 * Parameters for finding the next sun event
 */
export declare const NextSunEventParamsSchema: z.ZodObject<{
    event: z.ZodNativeEnum<typeof SunEventType>;
    date: z.ZodOptional<z.ZodString>;
    latitude: z.ZodNumber;
    longitude: z.ZodNumber;
    count: z.ZodOptional<z.ZodNumber>;
    format: z.ZodOptional<z.ZodEnum<["json", "text"]>>;
    timezone: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    event: SunEventType;
    latitude: number;
    longitude: number;
    date?: string | undefined;
    format?: "text" | "json" | undefined;
    count?: number | undefined;
    timezone?: string | undefined;
}, {
    event: SunEventType;
    latitude: number;
    longitude: number;
    date?: string | undefined;
    format?: "text" | "json" | undefined;
    count?: number | undefined;
    timezone?: string | undefined;
}>;
export type NextSunEventParams = z.infer<typeof NextSunEventParamsSchema>;
