import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as SettingsAPI from 'cloudflare/resources/workers/services/environments/settings';
export declare class Settings extends APIResource {
    /**
     * Patch script metadata, such as bindings
     */
    edit(serviceName: string, environmentName: string, params: SettingEditParams, options?: Core.RequestOptions): Core.APIPromise<SettingEditResponse>;
    /**
     * Get script settings from a worker with an environment
     */
    get(serviceName: string, environmentName: string, params: SettingGetParams, options?: Core.RequestOptions): Core.APIPromise<SettingGetResponse>;
}
export interface SettingEditResponse {
    /**
     * List of bindings attached to this Worker
     */
    bindings?: Array<SettingEditResponse.WorkersKVNamespaceBinding | SettingEditResponse.WorkersServiceBinding | SettingEditResponse.WorkersDoBinding | SettingEditResponse.WorkersR2Binding | SettingEditResponse.WorkersQueueBinding | SettingEditResponse.WorkersD1Binding | SettingEditResponse.WorkersDispatchNamespaceBinding | SettingEditResponse.WorkersMTLSCERTBinding>;
    /**
     * Opt your Worker into changes after this date
     */
    compatibility_date?: string;
    /**
     * Opt your Worker into specific changes
     */
    compatibility_flags?: Array<string>;
    /**
     * Whether Logpush is turned on for the Worker.
     */
    logpush?: boolean;
    /**
     * Migrations to apply for Durable Objects associated with this Worker.
     */
    migrations?: SettingEditResponse.WorkersSingleStepMigrations | SettingEditResponse.WorkersSteppedMigrations;
    placement?: SettingEditResponse.Placement;
    /**
     * Tags to help you manage your Workers
     */
    tags?: Array<string>;
    /**
     * List of Workers that will consume logs from the attached Worker.
     */
    tail_consumers?: Array<SettingEditResponse.TailConsumer>;
    /**
     * Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').
     */
    usage_model?: string;
}
export declare namespace SettingEditResponse {
    interface WorkersKVNamespaceBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Namespace identifier tag.
         */
        namespace_id: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'kv_namespace';
    }
    interface WorkersServiceBinding {
        /**
         * Optional environment if the Worker utilizes one.
         */
        environment: string;
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Name of Worker to bind to
         */
        service: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'service';
    }
    interface WorkersDoBinding {
        /**
         * The exported class name of the Durable Object
         */
        class_name: string;
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'durable_object_namespace';
        /**
         * The environment of the script_name to bind to
         */
        environment?: string;
        /**
         * Namespace identifier tag.
         */
        namespace_id?: string;
        /**
         * The script where the Durable Object is defined, if it is external to this Worker
         */
        script_name?: string;
    }
    interface WorkersR2Binding {
        /**
         * R2 bucket to bind to
         */
        bucket_name: string;
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'r2_bucket';
    }
    interface WorkersQueueBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Name of the Queue to bind to
         */
        queue_name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'queue';
    }
    interface WorkersD1Binding {
        /**
         * ID of the D1 database to bind to
         */
        id: string;
        /**
         * A JavaScript variable name for the binding.
         */
        binding: string;
        /**
         * The name of the D1 database associated with the 'id' provided.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'd1';
    }
    interface WorkersDispatchNamespaceBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Namespace to bind to
         */
        namespace: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'dispatch_namespace';
        /**
         * Outbound worker
         */
        outbound?: WorkersDispatchNamespaceBinding.Outbound;
    }
    namespace WorkersDispatchNamespaceBinding {
        /**
         * Outbound worker
         */
        interface Outbound {
            /**
             * Pass information from the Dispatch Worker to the Outbound Worker through the
             * parameters
             */
            params?: Array<string>;
            /**
             * Outbound worker
             */
            worker?: Outbound.Worker;
        }
        namespace Outbound {
            /**
             * Outbound worker
             */
            interface Worker {
                /**
                 * Environment of the outbound worker
                 */
                environment?: string;
                /**
                 * Name of the outbound worker
                 */
                service?: string;
            }
        }
    }
    interface WorkersMTLSCERTBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'mtls_certificate';
        /**
         * ID of the certificate to bind to
         */
        certificate_id?: string;
    }
    /**
     * A single set of migrations to apply.
     */
    interface WorkersSingleStepMigrations {
        /**
         * A list of classes to delete Durable Object namespaces from.
         */
        deleted_classes?: Array<string>;
        /**
         * A list of classes to create Durable Object namespaces from.
         */
        new_classes?: Array<string>;
        /**
         * Tag to set as the latest migration tag.
         */
        new_tag?: string;
        /**
         * Tag used to verify against the latest migration tag for this Worker. If they
         * don't match, the upload is rejected.
         */
        old_tag?: string;
        /**
         * A list of classes with Durable Object namespaces that were renamed.
         */
        renamed_classes?: Array<WorkersSingleStepMigrations.RenamedClass>;
        /**
         * A list of transfers for Durable Object namespaces from a different Worker and
         * class to a class defined in this Worker.
         */
        transferred_classes?: Array<WorkersSingleStepMigrations.TransferredClass>;
    }
    namespace WorkersSingleStepMigrations {
        interface RenamedClass {
            from?: string;
            to?: string;
        }
        interface TransferredClass {
            from?: string;
            from_script?: string;
            to?: string;
        }
    }
    interface WorkersSteppedMigrations {
        /**
         * Tag to set as the latest migration tag.
         */
        new_tag?: string;
        /**
         * Tag used to verify against the latest migration tag for this Worker. If they
         * don't match, the upload is rejected.
         */
        old_tag?: string;
        /**
         * Migrations to apply in order.
         */
        steps?: Array<WorkersSteppedMigrations.Step>;
    }
    namespace WorkersSteppedMigrations {
        interface Step {
            /**
             * A list of classes to delete Durable Object namespaces from.
             */
            deleted_classes?: Array<string>;
            /**
             * A list of classes to create Durable Object namespaces from.
             */
            new_classes?: Array<string>;
            /**
             * A list of classes with Durable Object namespaces that were renamed.
             */
            renamed_classes?: Array<Step.RenamedClass>;
            /**
             * A list of transfers for Durable Object namespaces from a different Worker and
             * class to a class defined in this Worker.
             */
            transferred_classes?: Array<Step.TransferredClass>;
        }
        namespace Step {
            interface RenamedClass {
                from?: string;
                to?: string;
            }
            interface TransferredClass {
                from?: string;
                from_script?: string;
                to?: string;
            }
        }
    }
    interface Placement {
        /**
         * Enables
         * [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
         * Only `"smart"` is currently supported
         */
        mode?: 'smart';
    }
    /**
     * A reference to a script that will consume logs from the attached Worker.
     */
    interface TailConsumer {
        /**
         * Name of Worker that is to be the consumer.
         */
        service: string;
        /**
         * Optional environment if the Worker utilizes one.
         */
        environment?: string;
        /**
         * Optional dispatch namespace the script belongs to.
         */
        namespace?: string;
    }
}
export interface SettingGetResponse {
    /**
     * List of bindings attached to this Worker
     */
    bindings?: Array<SettingGetResponse.WorkersKVNamespaceBinding | SettingGetResponse.WorkersServiceBinding | SettingGetResponse.WorkersDoBinding | SettingGetResponse.WorkersR2Binding | SettingGetResponse.WorkersQueueBinding | SettingGetResponse.WorkersD1Binding | SettingGetResponse.WorkersDispatchNamespaceBinding | SettingGetResponse.WorkersMTLSCERTBinding>;
    /**
     * Opt your Worker into changes after this date
     */
    compatibility_date?: string;
    /**
     * Opt your Worker into specific changes
     */
    compatibility_flags?: Array<string>;
    /**
     * Whether Logpush is turned on for the Worker.
     */
    logpush?: boolean;
    /**
     * Migrations to apply for Durable Objects associated with this Worker.
     */
    migrations?: SettingGetResponse.WorkersSingleStepMigrations | SettingGetResponse.WorkersSteppedMigrations;
    placement?: SettingGetResponse.Placement;
    /**
     * Tags to help you manage your Workers
     */
    tags?: Array<string>;
    /**
     * List of Workers that will consume logs from the attached Worker.
     */
    tail_consumers?: Array<SettingGetResponse.TailConsumer>;
    /**
     * Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').
     */
    usage_model?: string;
}
export declare namespace SettingGetResponse {
    interface WorkersKVNamespaceBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Namespace identifier tag.
         */
        namespace_id: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'kv_namespace';
    }
    interface WorkersServiceBinding {
        /**
         * Optional environment if the Worker utilizes one.
         */
        environment: string;
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Name of Worker to bind to
         */
        service: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'service';
    }
    interface WorkersDoBinding {
        /**
         * The exported class name of the Durable Object
         */
        class_name: string;
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'durable_object_namespace';
        /**
         * The environment of the script_name to bind to
         */
        environment?: string;
        /**
         * Namespace identifier tag.
         */
        namespace_id?: string;
        /**
         * The script where the Durable Object is defined, if it is external to this Worker
         */
        script_name?: string;
    }
    interface WorkersR2Binding {
        /**
         * R2 bucket to bind to
         */
        bucket_name: string;
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'r2_bucket';
    }
    interface WorkersQueueBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Name of the Queue to bind to
         */
        queue_name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'queue';
    }
    interface WorkersD1Binding {
        /**
         * ID of the D1 database to bind to
         */
        id: string;
        /**
         * A JavaScript variable name for the binding.
         */
        binding: string;
        /**
         * The name of the D1 database associated with the 'id' provided.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'd1';
    }
    interface WorkersDispatchNamespaceBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * Namespace to bind to
         */
        namespace: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'dispatch_namespace';
        /**
         * Outbound worker
         */
        outbound?: WorkersDispatchNamespaceBinding.Outbound;
    }
    namespace WorkersDispatchNamespaceBinding {
        /**
         * Outbound worker
         */
        interface Outbound {
            /**
             * Pass information from the Dispatch Worker to the Outbound Worker through the
             * parameters
             */
            params?: Array<string>;
            /**
             * Outbound worker
             */
            worker?: Outbound.Worker;
        }
        namespace Outbound {
            /**
             * Outbound worker
             */
            interface Worker {
                /**
                 * Environment of the outbound worker
                 */
                environment?: string;
                /**
                 * Name of the outbound worker
                 */
                service?: string;
            }
        }
    }
    interface WorkersMTLSCERTBinding {
        /**
         * A JavaScript variable name for the binding.
         */
        name: string;
        /**
         * The class of resource that the binding provides.
         */
        type: 'mtls_certificate';
        /**
         * ID of the certificate to bind to
         */
        certificate_id?: string;
    }
    /**
     * A single set of migrations to apply.
     */
    interface WorkersSingleStepMigrations {
        /**
         * A list of classes to delete Durable Object namespaces from.
         */
        deleted_classes?: Array<string>;
        /**
         * A list of classes to create Durable Object namespaces from.
         */
        new_classes?: Array<string>;
        /**
         * Tag to set as the latest migration tag.
         */
        new_tag?: string;
        /**
         * Tag used to verify against the latest migration tag for this Worker. If they
         * don't match, the upload is rejected.
         */
        old_tag?: string;
        /**
         * A list of classes with Durable Object namespaces that were renamed.
         */
        renamed_classes?: Array<WorkersSingleStepMigrations.RenamedClass>;
        /**
         * A list of transfers for Durable Object namespaces from a different Worker and
         * class to a class defined in this Worker.
         */
        transferred_classes?: Array<WorkersSingleStepMigrations.TransferredClass>;
    }
    namespace WorkersSingleStepMigrations {
        interface RenamedClass {
            from?: string;
            to?: string;
        }
        interface TransferredClass {
            from?: string;
            from_script?: string;
            to?: string;
        }
    }
    interface WorkersSteppedMigrations {
        /**
         * Tag to set as the latest migration tag.
         */
        new_tag?: string;
        /**
         * Tag used to verify against the latest migration tag for this Worker. If they
         * don't match, the upload is rejected.
         */
        old_tag?: string;
        /**
         * Migrations to apply in order.
         */
        steps?: Array<WorkersSteppedMigrations.Step>;
    }
    namespace WorkersSteppedMigrations {
        interface Step {
            /**
             * A list of classes to delete Durable Object namespaces from.
             */
            deleted_classes?: Array<string>;
            /**
             * A list of classes to create Durable Object namespaces from.
             */
            new_classes?: Array<string>;
            /**
             * A list of classes with Durable Object namespaces that were renamed.
             */
            renamed_classes?: Array<Step.RenamedClass>;
            /**
             * A list of transfers for Durable Object namespaces from a different Worker and
             * class to a class defined in this Worker.
             */
            transferred_classes?: Array<Step.TransferredClass>;
        }
        namespace Step {
            interface RenamedClass {
                from?: string;
                to?: string;
            }
            interface TransferredClass {
                from?: string;
                from_script?: string;
                to?: string;
            }
        }
    }
    interface Placement {
        /**
         * Enables
         * [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
         * Only `"smart"` is currently supported
         */
        mode?: 'smart';
    }
    /**
     * A reference to a script that will consume logs from the attached Worker.
     */
    interface TailConsumer {
        /**
         * Name of Worker that is to be the consumer.
         */
        service: string;
        /**
         * Optional environment if the Worker utilizes one.
         */
        environment?: string;
        /**
         * Optional dispatch namespace the script belongs to.
         */
        namespace?: string;
    }
}
export interface SettingEditParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param:
     */
    errors: Array<SettingEditParams.Error>;
    /**
     * Body param:
     */
    messages: Array<SettingEditParams.Message>;
    /**
     * Body param:
     */
    result: SettingEditParams.Result;
    /**
     * Body param: Whether the API call was successful
     */
    success: true;
}
export declare namespace SettingEditParams {
    interface Error {
        code: number;
        message: string;
    }
    interface Message {
        code: number;
        message: string;
    }
    interface Result {
        /**
         * List of bindings attached to this Worker
         */
        bindings?: Array<Result.WorkersKVNamespaceBinding | Result.WorkersServiceBinding | Result.WorkersDoBinding | Result.WorkersR2Binding | Result.WorkersQueueBinding | Result.WorkersD1Binding | Result.WorkersDispatchNamespaceBinding | Result.WorkersMTLSCERTBinding>;
        /**
         * Opt your Worker into changes after this date
         */
        compatibility_date?: string;
        /**
         * Opt your Worker into specific changes
         */
        compatibility_flags?: Array<string>;
        /**
         * Whether Logpush is turned on for the Worker.
         */
        logpush?: boolean;
        /**
         * Migrations to apply for Durable Objects associated with this Worker.
         */
        migrations?: Result.WorkersSingleStepMigrations | Result.WorkersSteppedMigrations;
        placement?: Result.Placement;
        /**
         * Tags to help you manage your Workers
         */
        tags?: Array<string>;
        /**
         * List of Workers that will consume logs from the attached Worker.
         */
        tail_consumers?: Array<Result.TailConsumer>;
        /**
         * Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').
         */
        usage_model?: string;
    }
    namespace Result {
        interface WorkersKVNamespaceBinding {
            /**
             * The class of resource that the binding provides.
             */
            type: 'kv_namespace';
        }
        interface WorkersServiceBinding {
            /**
             * Optional environment if the Worker utilizes one.
             */
            environment: string;
            /**
             * Name of Worker to bind to
             */
            service: string;
            /**
             * The class of resource that the binding provides.
             */
            type: 'service';
        }
        interface WorkersDoBinding {
            /**
             * The exported class name of the Durable Object
             */
            class_name: string;
            /**
             * The class of resource that the binding provides.
             */
            type: 'durable_object_namespace';
            /**
             * The environment of the script_name to bind to
             */
            environment?: string;
            /**
             * The script where the Durable Object is defined, if it is external to this Worker
             */
            script_name?: string;
        }
        interface WorkersR2Binding {
            /**
             * R2 bucket to bind to
             */
            bucket_name: string;
            /**
             * The class of resource that the binding provides.
             */
            type: 'r2_bucket';
        }
        interface WorkersQueueBinding {
            /**
             * Name of the Queue to bind to
             */
            queue_name: string;
            /**
             * The class of resource that the binding provides.
             */
            type: 'queue';
        }
        interface WorkersD1Binding {
            /**
             * ID of the D1 database to bind to
             */
            id: string;
            /**
             * The name of the D1 database associated with the 'id' provided.
             */
            name: string;
            /**
             * The class of resource that the binding provides.
             */
            type: 'd1';
        }
        interface WorkersDispatchNamespaceBinding {
            /**
             * Namespace to bind to
             */
            namespace: string;
            /**
             * The class of resource that the binding provides.
             */
            type: 'dispatch_namespace';
            /**
             * Outbound worker
             */
            outbound?: WorkersDispatchNamespaceBinding.Outbound;
        }
        namespace WorkersDispatchNamespaceBinding {
            /**
             * Outbound worker
             */
            interface Outbound {
                /**
                 * Pass information from the Dispatch Worker to the Outbound Worker through the
                 * parameters
                 */
                params?: Array<string>;
                /**
                 * Outbound worker
                 */
                worker?: Outbound.Worker;
            }
            namespace Outbound {
                /**
                 * Outbound worker
                 */
                interface Worker {
                    /**
                     * Environment of the outbound worker
                     */
                    environment?: string;
                    /**
                     * Name of the outbound worker
                     */
                    service?: string;
                }
            }
        }
        interface WorkersMTLSCERTBinding {
            /**
             * The class of resource that the binding provides.
             */
            type: 'mtls_certificate';
            /**
             * ID of the certificate to bind to
             */
            certificate_id?: string;
        }
        /**
         * A single set of migrations to apply.
         */
        interface WorkersSingleStepMigrations {
            /**
             * A list of classes to delete Durable Object namespaces from.
             */
            deleted_classes?: Array<string>;
            /**
             * A list of classes to create Durable Object namespaces from.
             */
            new_classes?: Array<string>;
            /**
             * Tag to set as the latest migration tag.
             */
            new_tag?: string;
            /**
             * Tag used to verify against the latest migration tag for this Worker. If they
             * don't match, the upload is rejected.
             */
            old_tag?: string;
            /**
             * A list of classes with Durable Object namespaces that were renamed.
             */
            renamed_classes?: Array<WorkersSingleStepMigrations.RenamedClass>;
            /**
             * A list of transfers for Durable Object namespaces from a different Worker and
             * class to a class defined in this Worker.
             */
            transferred_classes?: Array<WorkersSingleStepMigrations.TransferredClass>;
        }
        namespace WorkersSingleStepMigrations {
            interface RenamedClass {
                from?: string;
                to?: string;
            }
            interface TransferredClass {
                from?: string;
                from_script?: string;
                to?: string;
            }
        }
        interface WorkersSteppedMigrations {
            /**
             * Tag to set as the latest migration tag.
             */
            new_tag?: string;
            /**
             * Tag used to verify against the latest migration tag for this Worker. If they
             * don't match, the upload is rejected.
             */
            old_tag?: string;
            /**
             * Migrations to apply in order.
             */
            steps?: Array<WorkersSteppedMigrations.Step>;
        }
        namespace WorkersSteppedMigrations {
            interface Step {
                /**
                 * A list of classes to delete Durable Object namespaces from.
                 */
                deleted_classes?: Array<string>;
                /**
                 * A list of classes to create Durable Object namespaces from.
                 */
                new_classes?: Array<string>;
                /**
                 * A list of classes with Durable Object namespaces that were renamed.
                 */
                renamed_classes?: Array<Step.RenamedClass>;
                /**
                 * A list of transfers for Durable Object namespaces from a different Worker and
                 * class to a class defined in this Worker.
                 */
                transferred_classes?: Array<Step.TransferredClass>;
            }
            namespace Step {
                interface RenamedClass {
                    from?: string;
                    to?: string;
                }
                interface TransferredClass {
                    from?: string;
                    from_script?: string;
                    to?: string;
                }
            }
        }
        interface Placement {
            /**
             * Enables
             * [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
             * Only `"smart"` is currently supported
             */
            mode?: 'smart';
        }
        /**
         * A reference to a script that will consume logs from the attached Worker.
         */
        interface TailConsumer {
            /**
             * Name of Worker that is to be the consumer.
             */
            service: string;
            /**
             * Optional environment if the Worker utilizes one.
             */
            environment?: string;
            /**
             * Optional dispatch namespace the script belongs to.
             */
            namespace?: string;
        }
    }
}
export interface SettingGetParams {
    /**
     * Identifier
     */
    account_id: string;
}
export declare namespace Settings {
    export import SettingEditResponse = SettingsAPI.SettingEditResponse;
    export import SettingGetResponse = SettingsAPI.SettingGetResponse;
    export import SettingEditParams = SettingsAPI.SettingEditParams;
    export import SettingGetParams = SettingsAPI.SettingGetParams;
}
//# sourceMappingURL=settings.d.ts.map