import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseKeys extends APIResource {
    static readonly _key: readonly ['images', 'v1', 'keys'];
    /**
     * Create a new CF Images signing key with specified name. Returns all keys
     * available.
     *
     * @example
     * ```ts
     * const key = await client.images.v1.keys.update('someKey', {
     *   account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     * });
     * ```
     */
    update(signingKeyName: string, params: KeyUpdateParams, options?: RequestOptions): APIPromise<KeyUpdateResponse>;
    /**
     * List your CF Images signing keys.
     *
     * @example
     * ```ts
     * const keys = await client.images.v1.keys.list({
     *   account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     * });
     * ```
     */
    list(params: KeyListParams, options?: RequestOptions): APIPromise<KeyListResponse>;
    /**
     * Delete a CF Images signing key with specified name. Returns all keys available.
     * When the last key is removed, a new default signing key will be generated.
     *
     * @example
     * ```ts
     * const key = await client.images.v1.keys.delete('someKey', {
     *   account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     * });
     * ```
     */
    delete(signingKeyName: string, params: KeyDeleteParams, options?: RequestOptions): APIPromise<KeyDeleteResponse>;
}
export declare class Keys extends BaseKeys {
}
export interface Key {
    /**
     * Key name.
     */
    name?: string;
    /**
     * Key value.
     */
    value?: string;
}
export interface KeyUpdateResponse {
    keys?: Array<Key>;
}
export interface KeyListResponse {
    keys?: Array<Key>;
}
export interface KeyDeleteResponse {
    keys?: Array<Key>;
}
export interface KeyUpdateParams {
    /**
     * Account identifier tag.
     */
    account_id: string;
}
export interface KeyListParams {
    /**
     * Account identifier tag.
     */
    account_id: string;
}
export interface KeyDeleteParams {
    /**
     * Account identifier tag.
     */
    account_id: string;
}
export declare namespace Keys {
    export { type Key as Key, type KeyUpdateResponse as KeyUpdateResponse, type KeyListResponse as KeyListResponse, type KeyDeleteResponse as KeyDeleteResponse, type KeyUpdateParams as KeyUpdateParams, type KeyListParams as KeyListParams, type KeyDeleteParams as KeyDeleteParams, };
}
//# sourceMappingURL=keys.d.mts.map