import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseCredentials extends APIResource {
    static readonly _key: readonly ['containers', 'registries', 'credentials'];
    /**
     * Generates credentials for accessing a configured container image registry.
     *
     * @example
     * ```ts
     * const response =
     *   await client.containers.registries.credentials.generate(
     *     'registry.cloudflare.com',
     *     { account_id: 'account-123' },
     *   );
     * ```
     */
    generate(domain: string, params: CredentialGenerateParams, options?: RequestOptions): APIPromise<CredentialGenerateResponse>;
}
export declare class Credentials extends BaseCredentials {
}
/**
 * Credentials returned for an authenticated registry configured on a Containers
 * account.
 */
export interface CredentialGenerateResponse {
    /**
     * A unique identifier for the user's account.
     */
    account_id: string;
    /**
     * The password to use when authenticating to the image registry.
     */
    password: string;
    /**
     * The domain of the image registry these credentials target.
     */
    registry_host: string;
    /**
     * The username to use when authenticating to the image registry.
     */
    username: string;
}
export interface CredentialGenerateParams {
    /**
     * Path param: Account identifier.
     */
    account_id: string;
    /**
     * Body param: The number of minutes Cloudflare managed registry credentials stay
     * valid. Required for managed registries and must remain positive. Cloudflare
     * ignores this value for external registries.
     */
    expiration_minutes?: number;
    /**
     * Body param: The permissions for Cloudflare managed registry credentials.
     * Required for managed registries. Cloudflare ignores this value for external
     * registries.
     */
    permissions?: Array<'pull' | 'push' | 'list'>;
}
export declare namespace Credentials {
    export { type CredentialGenerateResponse as CredentialGenerateResponse, type CredentialGenerateParams as CredentialGenerateParams, };
}
//# sourceMappingURL=credentials.d.mts.map