export interface GraphClientConfig {
    endpoint: string;
    requestTimeoutMs?: number;
    maxRetries?: number;
    headers?: Record<string, string>;
    /** Optional async supplier for per-request headers (e.g. session JWT). */
    getHeaders?: () => Promise<Record<string, string>>;
}
export declare class GraphClient {
    private endpoint;
    private requestTimeoutMs;
    private maxRetries;
    private headers?;
    private getHeadersFn?;
    constructor(config: GraphClientConfig);
    execute<T>(query: string, variables?: Record<string, any>): Promise<T>;
    paginate<TItem>(query: string, variables: Record<string, any>, select: (page: any) => TItem[], options?: {
        pageSize?: number;
        maxPages?: number;
    }): Promise<TItem[]>;
    private backoff;
}
