/// <reference types="node" />
import Adapt, { SFCDeclProps } from "@adpt/core";
import { ClusterInfo, Metadata, ResourceProps, ResourcePropsWithConfig } from "./common";
import { Manifest } from "./manifest_support";
/**
 * Props for the {@link k8s.ConfigMap} resource
 *
 * @public
 */
interface ConfigMapProps {
    /** Information about the k8s cluster (ip address, auth info, etc.) */
    config: ClusterInfo;
    /** k8s metadata */
    metadata: Metadata;
    /**
     * BinaryData contains the binary data.
     *
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in the Data field,
     * this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and kubelet.
     *
     * @remarks
     *
     * Note that string values here need to be the base64 encoded version of the data if a string.
     * If a Buffer, the {@link k8s.ConfigMap} component will do the base64 enconding.
     */
    binaryData?: {
        [key: string]: string | Buffer;
    };
    /**
     * Data contains the configuration data.
     *
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in the BinaryData field,
     * this is enforced during validation process.
     */
    data?: {
        [key: string]: string;
    };
    /**
     * Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified).
     *
     * If not set to true, the field can be modified at any time. Defaulted to nil.
     * This is a beta field enabled by ImmutableEphemeralVolumes feature gate.
     */
    immutable?: boolean;
}
declare const defaultProps: {
    metadata: {};
};
/**
 * k8s ConfigMap resource
 *
 * @param propsIn - props for ConfigMap as specifed in {@link k8s.ConfigMapProps}
 *
 * @public
 */
export declare function ConfigMap(propsIn: SFCDeclProps<ConfigMapProps, typeof defaultProps>): Adapt.AdaptElement<Adapt.AnyProps>;
/** @internal */
export declare const configMapResourceInfo: {
    kind: string;
    deployedWhen: () => true;
    statusQuery: (props: ResourcePropsWithConfig, observe: Adapt.ObserveForStatus<unknown>, buildData: Adapt.BuildData) => Promise<any>;
    makeManifest: (manifest: Manifest, elem: Adapt.AdaptElement<ResourceProps>, _deployID: string) => {
        data: {
            [key: string]: string;
        } | undefined;
        binaryData: {
            [key: string]: string;
        } | undefined;
        immutable: boolean | undefined;
        apiVersion: string;
        kind: string;
        metadata: import("./manifest_support").MetadataInRequest;
        spec?: import("./common").CRSpec | import("./DaemonSet").DaemonSetSpec | import("./Pod").PodSpec | import("./Service").ServiceSpec | import("./Deployment").DeploymentSpec | undefined;
    };
};
export {};
//# sourceMappingURL=ConfigMap.d.ts.map