@class UIFont, NSString, _NSLineBreakerNodePool, NSMutableSet, _NSLineMetrics, NSAttributedString, NSParagraphStyle; @interface _NSOptimalLineBreaker : NSObject { BOOL _lineBreaksValid; BOOL _wrappingValid; BOOL _linesValid; double _tolerance; struct { struct _NSRange { unsigned long long x0; unsigned long long x1; } x0; double x1; double x2; double x3; double x4; unsigned short x5; double x6; } *_lineBreaks; unsigned long long _lineBreakCount; unsigned long long _lineBreakCapacity; struct __CFArray { } *_lines; struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; struct _NSRange { unsigned long long x0; unsigned long long x1; } x1; double x2; double x3; double x4; } *_lineInfos; struct __CFStringTokenizer { } *_wordTokenizer; struct __CFStringTokenizer { } *_wordBoundaryTokenizer; struct __CFStringTokenizer { } *_lineBreakTokenizer; BOOL _lineBreakTokenizerValid; UIFont *_cachedHyphenFont; struct _NSRange { unsigned long long location; unsigned long long length; } _cachedHyphenFontRange; double _cachedHyphenWidth; double _cachedAverageCharWidth; struct __CFLocale { } *_locale; NSParagraphStyle *_paragraphStyle; long long _alignment; double _firstLineMaxWidth; double _nonFirstLineMaxWidth; NSMutableSet *_consumedNBSPRanges; _NSLineBreakerNodePool *_nodePool; struct { struct _NSRange { unsigned long long x0; unsigned long long x1; } x0; double x1; double x2; double x3; double x4; unsigned short x5; double x6; } *_chosenLineBreaks; unsigned long long _chosenLineBreakCount; double _justifiedHyphenPenalty; double _nonJustifiedHyphenPenalty; double _hyphenationFactorHyphenPenalty; double _twoHyphenPenalty; double _stretchClassMismatchPenalty; double _riverPenalty; unsigned long long _minNonRuntLength; double _expansionPower; double _expansionWeight; double _maxContract; double _maxExpand; double _nonJustifiedStretchFactor; double _maxGlyphContract; double _maxGlyphExpand; NSParagraphStyle *_defaultParagraphStyle; _NSLineMetrics *_lineMetrics; BOOL _lineMetricsValid; } @property (copy, nonatomic) NSAttributedString *attributedString; @property (nonatomic) struct _NSRange { unsigned long long location; unsigned long long length; } paragraphRange; @property (nonatomic) struct __CTLine { } *paragraphLine; @property (nonatomic) double textContainerWidth; @property (nonatomic) struct __CFLocale { } *locale; @property (nonatomic) BOOL allowsHyphenation; @property (nonatomic) double hyphenationFactor; @property (nonatomic) unsigned long long minHyphenationLineCount; @property (nonatomic) BOOL shouldFillLastLine; @property (nonatomic) double minimumLastLineLength; @property (nonatomic) long long lineCountAdjustment; @property (copy, nonatomic) NSString *lineBreakAlgorithm; @property (nonatomic) BOOL usesHangingPunctuation; @property (nonatomic) BOOL usesStretchClasses; @property (nonatomic) BOOL avoidsRivers; @property (nonatomic) BOOL compressesLeftAlignedText; @property (nonatomic) BOOL expandsGlyphs; @property (nonatomic) unsigned long long lineBreakStrategy; @property (nonatomic) int koreanLineBreakBehavior; @property (nonatomic) int prepositionLineBreakBehavior; @property (nonatomic) BOOL breaksWithinCJWords; @property (nonatomic) BOOL usesCFStringTokenizerForLineBreaks; @property (nonatomic) BOOL hyphenatesBetweenMorphemesFreely; @property (nonatomic) BOOL hyphenatesAsLastResort; @property (nonatomic) unsigned long long minPreHyphenLength; @property (nonatomic) unsigned long long minPostHyphenLength; @property (copy, nonatomic) NSParagraphStyle *defaultParagraphStyle; @property (readonly, nonatomic) NSString *debugString; - (unsigned long long)lineCount; - (id)init; - (void)dealloc; - (void)setOptions:(id)a0; - (struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; struct _NSRange { unsigned long long x0; unsigned long long x1; } x1; double x2; double x3; double x4; })lineInfoAtIndex:(unsigned long long)a0; - (void)enumerateLineBreaksInRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a0 withBlock:(id /* block */)a1; - (struct __CTLine { } *)lineAtIndex:(unsigned long long)a0 lineInfo:(out struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; struct _NSRange { unsigned long long x0; unsigned long long x1; } x1; double x2; double x3; double x4; } *)a1; - (void).cxx_destruct; - (double)_naturalWidthFromBreak:(const struct { struct _NSRange { unsigned long long x0; unsigned long long x1; } x0; double x1; double x2; double x3; double x4; unsigned short x5; double x6; } *)a0 toBreak:(const struct { struct _NSRange { unsigned long long x0; unsigned long long x1; } x0; double x1; double x2; double x3; double x4; unsigned short x5; double x6; } *)a1; - (void)layout; - (void)invalidateWrapping; - (void)setAttributedString:(id)a0 paragraphRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (struct { struct _NSRange { unsigned long long x0; unsigned long long x1; } x0; double x1; double x2; double x3; double x4; unsigned short x5; double x6; })lineBreakAtIndex:(unsigned long long)a0; @end