import * as Effect from "effect/Effect";
import { Region } from "../Region.ts";
import type { PublicRepository } from "./Repository.ts";
/** Pin a distilled `ecr-public` effect to the service's home region. */
export declare const pinEcrPublic: (effect: Effect.Effect) => Effect.Effect>;
/**
* Build the impl Effect for an operation scoped to one
* {@link PublicRepository}. The runtime callable injects the bound
* repository's name as the request's `repositoryName`; the deploy-time half
* grants `iamActions` on the repository's ARN.
*/
export declare const makePublicRepositoryHttpBinding: (options: {
/**
* Short capability name used in the binding sid and runtime span, e.g.
* `"DescribeImages"`.
*/
capability: string;
/** IAM actions granted on the repository ARN. */
iamActions: readonly string[];
/** The distilled operation; `repositoryName` is injected. */
operation: Effect.Effect<(input: I) => Effect.Effect, never, R>;
}) => Effect.Effect<(repository: PublicRepository) => Effect.Effect<(request?: Omit | undefined) => Effect.Effect, never, never>, never, Exclude>;
/**
* Build the impl Effect for a registry-level ECR Public operation
* (`GetAuthorizationToken`, `DescribeRegistries`, `GetRegistryCatalogData` —
* none of which are repository-scoped, so the grant is on
* `Resource: ["*"]`).
*/
export declare const makePublicRegistryHttpBinding: (options: {
/**
* Short capability name used in the binding sid and runtime span, e.g.
* `"GetAuthorizationToken"`.
*/
capability: string;
/** IAM actions granted on `Resource: ["*"]`. */
iamActions: readonly string[];
/** The distilled operation implementing the capability. */
operation: Effect.Effect<(input: I) => Effect.Effect, never, R>;
}) => Effect.Effect<() => Effect.Effect<(request?: I | undefined) => Effect.Effect, never, never>, never, Exclude>;
//# sourceMappingURL=BindingHttp.d.ts.map