import * as i0 from '@angular/core';
import { PipeTransform } from '@angular/core';
import { Size } from '@obliczeniowo/elementary/resize-window';
import * as i5 from '@angular/common';

type TextFormatType = (['lower' | 'upper' | 'upperFirst' | 'allFirstToUpper' | 'css' | 'noPolishLetters'] | ['ellipsis', number]);

declare class TextFormatPipe implements PipeTransform {
    transform(value: string, ...args: TextFormatType): string;
    protected firstToUpper(text: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextFormatPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<TextFormatPipe, "oblTextFormat", false>;
}

declare class TextSizePipe implements PipeTransform {
    div: HTMLDivElement;
    constructor();
    transform(value: string, fontSize: number): Size;
    measureText(text: string, fontSize: number): Size;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextSizePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<TextSizePipe, "textSize", false>;
}

declare class TranslationPipe implements PipeTransform {
    /**
     * Transforming key by translations mapping object
     * @param value string key to translate
     * @param translations translations map
     * @param params params for translations
     * @param def override default
     * @returns translated string
     */
    transform(value: string, translations: {
        [en: string]: string | undefined;
    }, params?: {
        [param: string]: string | number;
    }, def?: string): string;
    setParams(translation: string, params?: {
        [param: string]: string | number;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<TranslationPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<TranslationPipe, "oblTranslation", false>;
}

declare class TextSplitPipe implements PipeTransform {
    transform(value: string, by?: string): string[];
    static ɵfac: i0.ɵɵFactoryDeclaration<TextSplitPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<TextSplitPipe, "oblTextSplit", false>;
}

declare class TextPipesModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TextPipesModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TextPipesModule, [typeof TextFormatPipe, typeof TextSizePipe, typeof TranslationPipe, typeof TextSplitPipe], [typeof i5.CommonModule], [typeof TextFormatPipe, typeof TextSizePipe, typeof TranslationPipe, typeof TextSplitPipe]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TextPipesModule>;
}

export { TextFormatPipe, TextPipesModule, TextSizePipe, TextSplitPipe, TranslationPipe };
export type { TextFormatType };
