import type { Strings } from 'hotscript';
import type { Piped } from './pipe.js';
import type { SerializableTransformer, Transformer } from './transformer.js';
interface SuffixerOptions<DELIMITER extends string> {
    delimiter?: DELIMITER;
}
export interface SuffixerDTO {
    transformerId: 'suffix';
    suffix: string;
    delimiter: string;
}
export declare class Suffixer<SUFFIX extends string, DELIMITER extends string = '#'> implements SerializableTransformer<string, string, string, Strings.Append<`${DELIMITER}${SUFFIX}`>, SuffixerDTO> {
    _typeModifier: Strings.Append<`${DELIMITER}${SUFFIX}`>;
    transformerId: 'suffix';
    suffix: SUFFIX;
    delimiter: DELIMITER;
    constructor(suffix: SUFFIX, { delimiter }?: SuffixerOptions<DELIMITER>);
    encode(decoded: string): string;
    decode(encoded: string): string;
    toJSON(): {
        transformerId: "suffix";
        suffix: SUFFIX;
        delimiter: DELIMITER;
    };
    pipe<TRANSFORMER extends Transformer<string>>(transformer: TRANSFORMER): Piped<[this, TRANSFORMER]>;
}
type Suffix = <SUFFIX extends string, DELIMITER extends string = '#'>(suffix: SUFFIX, options?: SuffixerOptions<DELIMITER>) => Suffixer<SUFFIX, DELIMITER>;
export declare const suffix: Suffix;
export {};
