import type { ResourceCtx } from '../../../core/extend-resource.js'; import type { ResolvedAddOn } from '../../platform/add-on/index.js'; export type ResolveRedisByAppOptions = { /** * Override the add-on service prefix used to identify a redis add-on * on the app. Defaults to `heroku-redis`. The match is a prefix * (`startsWith`) on `addon_service.name`, matching the CLI's existing * `makeAddonsFilter` semantics. */ addonServiceName?: string; /** * Optional filter narrowing the app's redis add-ons to a single * database. Matched case-insensitively against the add-on's `name` * and each of its `config_vars`, using substring containment. This * mirrors the CLI's `makeAddonsFilter` behavior so migrating callers * observe identical resolution semantics. */ database?: string; signal?: AbortSignal; }; /** * Resolve a redis add-on attached to `appIdentity`. * * Lists the app's add-ons, filters them to those whose * `addon_service.name` starts with `heroku-redis` (or the caller's * `addonServiceName`), and further narrows by the optional `database` * filter using the same case-insensitive substring match the CLI has * always used. * * Throws `RedisAddonNotFoundError` if no add-ons remain after filtering, * `RedisAddonAmbiguousError` if more than one remains. Both subclass the * generic add-on errors so callers doing `instanceof AddonNotFoundError` * still match. */ export declare function resolveRedisByApp(ctx: Pick, appIdentity: string, options?: ResolveRedisByAppOptions): Promise;