export type NoriConfig = {
    username?: string | null;
    password?: string | null;
    refreshToken?: string | null;
    idToken?: string | null;
    idTokenExpiresAt?: number | null;
    apiToken?: string | null;
    organizationUrl?: string | null;
};
/**
 * Read NORI_API_TOKEN from environment. The orgId is parsed from the token itself.
 *
 * @returns The parsed token+orgId pair, or null if the env var is unset,
 *   empty, or not a valid API token shape.
 */
export declare const readApiTokenEnv: () => {
    token: string;
    orgId: string;
} | null;
export declare class ConfigManager {
    static loadConfig: () => NoriConfig | null;
    static isConfigured: () => boolean;
}
export declare class AuthManager {
    private static authToken?;
    private static tokenExpiry?;
    static getAuthToken(args?: {
        forceRefresh?: boolean | null;
        targetUrl?: string | null;
    }): Promise<string>;
    static clearAuth: () => void;
    /** Reset cached auth state — used in tests. */
    static reset: () => void;
}
export declare const apiRequest: <T>(args: {
    path: string;
    method?: "GET" | "POST" | "PUT" | "DELETE";
    body?: any;
    queryParams?: Record<string, string>;
    retries?: number | null;
    baseUrl?: string | null;
}) => Promise<T>;
//# sourceMappingURL=base.d.ts.map