export interface EventbriteEvent {
    id: string;
    name: {
        text: string;
        html: string;
    };
    description?: {
        text: string;
        html: string;
    };
    url: string;
    start: {
        timezone: string;
        local: string;
        utc: string;
    };
    end: {
        timezone: string;
        local: string;
        utc: string;
    };
    venue_id?: string;
    venue?: {
        id: string;
        name: string;
        address: {
            address_1: string;
            address_2?: string;
            city: string;
            region?: string;
            postal_code: string;
            country: string;
        };
    };
    capacity?: number;
    category_id?: string;
    is_free: boolean;
    logo_id?: string;
    logo?: {
        url: string;
    };
}
export interface EventbriteVenue {
    id: string;
    name: string;
    address: {
        address_1: string;
        address_2?: string;
        city: string;
        region?: string;
        postal_code: string;
        country: string;
    };
    capacity?: number;
}
export interface EventbriteCategory {
    id: string;
    name: string;
    short_name?: string;
}
export interface SearchEventsParams {
    q?: string;
    location?: {
        latitude: number;
        longitude: number;
        within?: string;
    };
    categories?: string[];
    start_date?: string;
    end_date?: string;
    price?: "free" | "paid";
    page?: number;
    page_size?: number;
}
export declare class EventbriteApiClient {
    private apiKey;
    private client;
    private baseUrl;
    constructor(apiKey: string);
    /**
     * Search for events
     */
    searchEvents(params: SearchEventsParams): Promise<{
        events: EventbriteEvent[];
        pagination: any;
    }>;
    /**
     * Get event details by ID
     */
    getEvent(eventId: string): Promise<EventbriteEvent>;
    /**
     * Get venue details by ID
     */
    getVenue(venueId: string): Promise<EventbriteVenue>;
    /**
     * Get categories
     */
    getCategories(): Promise<EventbriteCategory[]>;
    /**
     * Get user's events (requires user OAuth token)
     */
    getUserEvents(page?: number, pageSize?: number): Promise<{
        events: EventbriteEvent[];
        pagination: any;
    }>;
}
