import { RateLimitConfig } from '@awell-health/extensions-core';
import { z } from 'zod';
export declare const settings: {
    base_url: {
        key: string;
        label: string;
        obfuscated: false;
        description: string;
        required: true;
    };
    auth_url: {
        key: string;
        label: string;
        obfuscated: false;
        description: string;
        required: true;
    };
    client_id: {
        key: string;
        label: string;
        obfuscated: false;
        description: string;
        required: true;
    };
    client_secret: {
        key: string;
        label: string;
        obfuscated: true;
        description: string;
        required: true;
    };
    username: {
        key: string;
        label: string;
        obfuscated: false;
        description: string;
        required: false;
    };
    password: {
        key: string;
        label: string;
        obfuscated: true;
        description: string;
        required: false;
    };
    rateLimitDuration: {
        key: string;
        label: string;
        obfuscated: false;
        description: string;
        required: false;
    };
};
export declare const rateLimitDurationSchema: z.ZodEffects<z.ZodString, string, string>;
export declare const SettingsValidationSchema: z.ZodObject<{
    base_url: z.ZodString;
    auth_url: z.ZodString;
    client_id: z.ZodString;
    client_secret: z.ZodString;
    /**
     * Elation now uses client credentials authentication.
     * We don't remove the settings just yet for backward compatibility for existing care flows.
     * See https://linear.app/awell/issue/ET-577/elation-extension-make-username-and-password-optional-in-auth
     */
    username: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    rateLimitDuration: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}, "strip", z.ZodTypeAny, {
    auth_url: string;
    client_id: string;
    client_secret: string;
    base_url: string;
    username?: string | undefined;
    password?: string | undefined;
    rateLimitDuration?: string | undefined;
}, {
    auth_url: string;
    client_id: string;
    client_secret: string;
    base_url: string;
    username?: string | undefined;
    password?: string | undefined;
    rateLimitDuration?: string | undefined;
}>;
export type SettingsType = z.infer<typeof SettingsValidationSchema>;
export declare const transformRateLimitDuration: (val: string) => RateLimitConfig["duration"];
