import { z } from '../secrets.ts';
export interface BoxConfig {
    timeout?: number;
    endpoint?: string;
    rootFolderId?: string;
    clientId?: string;
    clientSecret?: string;
    refreshToken?: string;
    enterpriseId?: string;
    accessToken?: string;
    refreshFn?: (refreshToken: string) => Promise<{
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    }>;
    onRefreshTokenRotated?: (newRefreshToken: string) => void | Promise<void>;
}
export declare const BoxConfig: z.ZodObject<{
    endpoint: z.ZodOptional<z.ZodString>;
    rootFolderId: z.ZodOptional<z.ZodString>;
    clientId: z.ZodOptional<z.ZodString>;
    clientSecret: z.ZodOptional<import("../secrets.ts").SecretSchema<z.ZodString>>;
    refreshToken: z.ZodOptional<import("../secrets.ts").SecretSchema<z.ZodString>>;
    enterpriseId: z.ZodOptional<z.ZodString>;
    accessToken: z.ZodOptional<import("../secrets.ts").SecretSchema<z.ZodString>>;
    refreshFn: z.ZodOptional<import("../secrets.ts").SecretSchema<z.ZodCustom<(refreshToken: string) => Promise<{
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    }>, (refreshToken: string) => Promise<{
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    }>>>>;
    onRefreshTokenRotated: z.ZodOptional<import("../secrets.ts").SecretSchema<z.ZodCustom<(newRefreshToken: string) => void | Promise<void>, (newRefreshToken: string) => void | Promise<void>>>>;
    timeout: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
//# sourceMappingURL=config.d.ts.map