import type { ApiResult, HTTPMethod, PublicAPIEndpoints, PublicEndpointName } from './contracts';
export declare const PUBLIC_ENDPOINT_NAMES: readonly ["getSite", "getContentByPath", "listPublishedEntries", "getPublishedEntryPreview", "getPublicFormById", "listPublicForms", "getPublicBookingServices", "getPublicChallenge", "listPublicEvents", "batchBlockLoaders", "listPublicCourses", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "resolveEntrySubroute", "resolveEventOccurrence", "checkRedirect", "getRoutableContent", "getPublicSitemapRoutes"];
export type ApiClient = <E extends PublicEndpointName>(params: {
    endpoint: E;
    params?: PublicAPIEndpoints[E]['query'];
    body?: PublicAPIEndpoints[E]['body'];
    options?: RequestInit;
}) => Promise<ApiResult<NonNullable<PublicAPIEndpoints[E]['response']>>>;
export type PublicEndpointDefinition = Readonly<{
    path: string;
    method: HTTPMethod;
    auth?: string;
    responseKind?: string;
    revalidate?: number;
    tags?: readonly string[];
}>;
export declare const API_ENDPOINTS: Readonly<Record<PublicEndpointName, PublicEndpointDefinition>>;
export declare function buildEndpointURL(baseURL: string, endpoint: PublicEndpointName): string;
