/*!
 * Copyright 2020, OpenTelemetry Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { Resource } from '../../../Resource';
import { Detector } from '../../../types';
/**
 * EnvDetector can be used to detect the presence of and create a Resource
 * from the OTEL_RESOURCE_LABELS environment variable.
 */
declare class EnvDetector implements Detector {
    private readonly _MAX_LENGTH;
    private readonly _COMMA_SEPARATOR;
    private readonly _LABEL_KEY_VALUE_SPLITTER;
    private readonly _ERROR_MESSAGE_INVALID_CHARS;
    private readonly _ERROR_MESSAGE_INVALID_VALUE;
    /**
     * Returns a {@link Resource} populated with labels from the
     * OTEL_RESOURCE_LABELS environment variable. Note this is an async function
     * to conform to the Detector interface.
     */
    detect(): Promise<Resource>;
    /**
     * Creates a label map from the OTEL_RESOURCE_LABELS environment variable.
     *
     * OTEL_RESOURCE_LABELS: A comma-separated list of labels describing the
     * source in more detail, e.g. “key1=val1,key2=val2”. Domain names and paths
     * are accepted as label keys. Values may be quoted or unquoted in general. If
     * a value contains whitespaces, =, or " characters, it must always be quoted.
     *
     * @param rawEnvLabels The resource labels as a comma-seperated list
     * of key/value pairs.
     * @returns The sanitized resource labels.
     */
    private _parseResourceLabels;
    /**
     * Determines whether the given String is a valid printable ASCII string with
     * a length not exceed _MAX_LENGTH characters.
     *
     * @param str The String to be validated.
     * @returns Whether the String is valid.
     */
    private _isValid;
    private _isPrintableString;
    /**
     * Determines whether the given String is a valid printable ASCII string with
     * a length greater than 0 and not exceed _MAX_LENGTH characters.
     *
     * @param str The String to be validated.
     * @returns Whether the String is valid and not empty.
     */
    private _isValidAndNotEmpty;
}
export declare const envDetector: EnvDetector;
export {};
//# sourceMappingURL=EnvDetector.d.ts.map