import { IFragmentConcatenator, IResolvable } from './resolvable';
/**
 * (experimental) Fragments of a concatenated string containing stringified Tokens.
 *
 * @experimental
 */
export declare class TokenizedStringFragments {
    private readonly fragments;
    /**
     * @experimental
     */
    get firstToken(): IResolvable | undefined;
    /**
     * @experimental
     */
    get firstValue(): any;
    /**
     * @experimental
     */
    get length(): number;
    /**
     * @experimental
     */
    addLiteral(lit: any): void;
    /**
     * @experimental
     */
    addToken(token: IResolvable): void;
    /**
     * @experimental
     */
    addIntrinsic(value: any): void;
    /**
     * (experimental) Return all Tokens from this string.
     *
     * @experimental
     */
    get tokens(): IResolvable[];
    /**
     * (experimental) Apply a transformation function to all tokens in the string.
     *
     * @experimental
     */
    mapTokens(mapper: ITokenMapper): TokenizedStringFragments;
    /**
     * (experimental) Combine the string fragments using the given joiner.
     *
     * If there are any
     *
     * @experimental
     */
    join(concat: IFragmentConcatenator): any;
}
/**
 * (experimental) Interface to apply operation to tokens in a string.
 *
 * Interface so it can be exported via jsii.
 *
 * @experimental
 */
export interface ITokenMapper {
    /**
     * (experimental) Replace a single token.
     *
     * @experimental
     */
    mapToken(t: IResolvable): any;
}
