import { z } from 'zod';
export interface OpenAlexOptions {
    mailto?: string;
}
export declare class OpenAlexError extends Error {
    statusCode?: number | undefined;
    response?: unknown | undefined;
    constructor(message: string, statusCode?: number | undefined, response?: unknown | undefined);
}
export declare function fetchFromOpenAlex<T>(endpoint: string, params?: Record<string, string | number | boolean>, options?: OpenAlexOptions): Promise<T>;
export declare const PaginationSchema: z.ZodObject<{
    count: z.ZodNumber;
    db_response_time_ms: z.ZodNumber;
    page: z.ZodOptional<z.ZodNumber>;
    per_page: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    count: number;
    db_response_time_ms: number;
    page?: number | undefined;
    per_page?: number | undefined;
}, {
    count: number;
    db_response_time_ms: number;
    page?: number | undefined;
    per_page?: number | undefined;
}>;
export declare const MetaSchema: z.ZodObject<{
    count: z.ZodNumber;
    db_response_time_ms: z.ZodNumber;
    page: z.ZodNullable<z.ZodNumber>;
    per_page: z.ZodNumber;
    groups_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
    count: number;
    db_response_time_ms: number;
    page: number | null;
    per_page: number;
    groups_count?: number | null | undefined;
}, {
    count: number;
    db_response_time_ms: number;
    page: number | null;
    per_page: number;
    groups_count?: number | null | undefined;
}>;
export declare const FilterSchema: z.ZodObject<{
    search: z.ZodOptional<z.ZodString>;
    filter: z.ZodOptional<z.ZodString>;
    sort: z.ZodOptional<z.ZodString>;
    page: z.ZodOptional<z.ZodNumber>;
    per_page: z.ZodOptional<z.ZodNumber>;
    mailto: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    mailto?: string | undefined;
    page?: number | undefined;
    per_page?: number | undefined;
    sort?: string | undefined;
    filter?: string | undefined;
    search?: string | undefined;
}, {
    mailto?: string | undefined;
    page?: number | undefined;
    per_page?: number | undefined;
    sort?: string | undefined;
    filter?: string | undefined;
    search?: string | undefined;
}>;
export type Filter = z.infer<typeof FilterSchema>;
//# sourceMappingURL=openalex-client.d.ts.map