///
import { ArgumentElement, Element, ElementFormat, MessageFormatPattern, PluralFormat, SelectFormat, SelectOrdinalFormat } from "intl-messageformat-parser";
import LangFileClient from "./LangFileClient";
import TranslationClient from "./TranslationClient";
import { TranslateFunctionCall, UserWithKeysAndBillingInfo, LangConfig } from "./types";
import ora = require("ora");
export declare function loadLangInternalDevelopmentKey(): string | null;
export declare function loadEnvAndGetContent(): string | null;
export declare function sh(cmd: any): Promise<{
stdout: string | null;
stderr: string | null;
}>;
export declare function isDevelopment(): boolean;
export declare function getBackendUrl(): "http://localhost:4000" | "https://lang-backend.herokuapp.com/";
export declare function absolutePath(sourceDir: string, fileName?: string): string;
export declare const lines: (newlined: string | Buffer) => string[];
export declare function flattenArray(array: T[][]): T[];
export declare type Dict = {
[key: string]: any;
};
export declare function isProductionKey(apiKey: string): boolean;
export declare function formatCredits(credits: number): string;
export declare function askForCostConfirmation(translationClient: TranslationClient, spinner: ora.Ora, translateCalls: TranslateFunctionCall[], langFileClient: LangFileClient): Promise;
export declare function formattedVariable(variable: string): string;
export declare function formattedIndex(index: number): string;
export declare function getTrSourceFiles(files: string[]): string[];
export declare const asyncReadFile: (sourceFile: string, callbackFn: any) => Promise;
export declare function groupBy(list: T[], keyGetter: (arg: T) => any): Map;
export declare function extractParameters(originalText: string): string[];
export declare function handleMessageFormatPattern(messageFormatPattern: MessageFormatPattern, parameters: string[]): MessageFormatPattern;
export declare function handleFormat(format: ElementFormat, parameters: string[]): ElementFormat;
export declare function isSegmentBaseArgument(segment: Element): false;
export declare function isSegmentNonBaseArgument(segment: Element): false | import("intl-messageformat-parser").SimpleFormat | PluralFormat | SelectFormat | SelectOrdinalFormat;
export declare function isSegmentMessage(segment: Element): boolean;
export declare function handleParameter(segment: ArgumentElement, parameters: string[]): void;
export declare const getFrontendUrl: () => "http://localhost:3000" | "https://langapi.co";
export declare const fetchKeysForPush: (user: UserWithKeysAndBillingInfo, human: boolean, project: string | undefined) => string;
export declare const fetchKeysForPull: (user: UserWithKeysAndBillingInfo, project: string | undefined) => string;
export declare function getTagsFromConfig(langConfig: LangConfig): string[];