export type RaxodeEndpointShape = "chatgpt_codex_responses" | "responses" | "chat_completions" | "messages";
export type RaxodeUrlMode = "auto_append_endpoint" | "literal";
export type RaxodeProviderRequestUrlPlan = {
    inputBaseURL: string;
    endpointShape: RaxodeEndpointShape;
    urlMode: RaxodeUrlMode;
    finalRequestURL: string;
};
export type RaxodeProviderConfigurationError = {
    code: "MISSING_BASE_URL" | "INVALID_BASE_URL" | "UNSUPPORTED_ENDPOINT_SHAPE" | "FULL_ENDPOINT_REQUIRES_TRAILING_SLASH" | "MISSING_SECRET" | "MISSING_PROFILE_ID" | "MISSING_MODEL" | "MISSING_ROLE_BINDING";
    message: string;
    boundary: "input" | "config";
    publicSafe: true;
};
export type RaxodeProviderRequestUrlResult = {
    ok: true;
    plan: RaxodeProviderRequestUrlPlan;
} | {
    ok: false;
    error: RaxodeProviderConfigurationError;
};
export type RaxodeSecret = {
    id: string;
    providerLabel: string;
    authMode: "api_key" | "chatgpt_oauth";
    secretKind: "api_key" | "chatgpt_tokens";
    credentials: {
        apiKey?: string;
        accessToken?: string;
        refreshToken?: string;
        idToken?: string;
        accountId?: string;
    };
    display: {
        masked: string;
        redactedIdentity?: string;
    };
    encryption: {
        mode: "none";
        reserved: true;
    };
    meta: {
        createdAt: string;
        updatedAt: string;
        lastUsedAt?: string;
    };
};
export type RaxodeSecretResult = {
    ok: true;
    secret: RaxodeSecret;
} | {
    ok: false;
    error: RaxodeProviderConfigurationError;
};
export type RaxodeModelEntry = {
    id: string;
    model: string;
    reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh";
    contextWindowTokens?: number;
    maxOutputTokens?: number;
    inputBudgetThreshold?: number;
    usableInputTokens?: number;
    testStatus: {
        state: "unknown" | "passed" | "failed";
        checkedAt?: string;
        statusCode?: number;
        message?: string;
    };
};
export type RaxodeModelEntryResult = {
    ok: true;
    modelEntry: RaxodeModelEntry;
} | {
    ok: false;
    error: RaxodeProviderConfigurationError;
};
export type RaxodeProviderProfile = {
    id: string;
    name: string;
    providerLabel: string;
    endpointShape: RaxodeEndpointShape;
    authSecretId: string;
    inputBaseURL: string;
    urlMode: RaxodeUrlMode;
    finalRequestURL: string;
    modelEntries: readonly RaxodeModelEntry[];
    createdAt: string;
    updatedAt: string;
};
export type RaxodeProviderProfileResult = {
    ok: true;
    profile: RaxodeProviderProfile;
} | {
    ok: false;
    error: RaxodeProviderConfigurationError;
};
export type RaxodeRoleBinding = {
    roleId: string;
    providerProfileId?: string;
    modelEntryId?: string;
    enabled: boolean;
};
export type RaxodeRoleBindingResult = {
    ok: true;
    binding: RaxodeRoleBinding;
} | {
    ok: false;
    error: RaxodeProviderConfigurationError;
};
export declare function resolveRaxodeProviderRequestUrl(input: {
    inputBaseURL?: string;
    endpointShape?: RaxodeEndpointShape;
}): RaxodeProviderRequestUrlResult;
export declare function maskRaxodeSecret(secret: string): string;
export declare function createRaxodeSecret(input: {
    id?: string;
    providerLabel?: string;
    secretKind?: "api_key" | "chatgpt_tokens";
    apiKey?: string;
    accessToken?: string;
    refreshToken?: string;
    idToken?: string;
    accountId?: string;
    now?: string;
}): RaxodeSecretResult;
export declare function createRaxodeModelEntry(input: {
    id?: string;
    model?: string;
    reasoningEffort?: RaxodeModelEntry["reasoningEffort"];
    contextWindowTokens?: number;
    maxOutputTokens?: number;
    inputBudgetThreshold?: number;
    testStatus?: RaxodeModelEntry["testStatus"];
}): RaxodeModelEntryResult;
export declare function createRaxodeProviderProfile(input: {
    id?: string;
    name?: string;
    providerLabel?: string;
    endpointShape?: RaxodeEndpointShape;
    authSecretId?: string;
    inputBaseURL?: string;
    modelEntries?: readonly RaxodeModelEntry[];
    now?: string;
}): RaxodeProviderProfileResult;
export declare function bindRaxodeRoleModel(input: {
    roleId?: string;
    providerProfileId?: string;
    modelEntryId?: string;
    enabled?: boolean;
}): RaxodeRoleBindingResult;
