#ifndef _text

#define _text

#include <stdarg.h>

#include <math.h>

#include <stdbool.h>


	typedef struct text{

		char * value;

		char * buffer;

		int useBuffer;

		int length;

		int capacity;

	} text;


	char * text_removeSpaces( char * s );


	bool text_contains( char * s, char * needle );

	int text_findArgumentCloseIndex( char * body, int fromKey );

	void text_validateCurlyBrackets( char * source );

	char * text_regexReplaceAll( char * haystack, char * needle, char * needleText, char * replacement );

	char * text_regexReplaceAll2( char * haystack, char * needle, char * needleText, char * replacement );

	char * text_replaceAll( char * target, const char * needle, const char * replacement );

	char * text_replace( char * haystack, char * needle, char * replaceWith );

	int text_isValidNumber( char * a );

	int text_findNumberOfLineBreaks( char * source );

	char * text_replaceChar( char * text, char needle, char replacement );
	
	int text_findNextLineBreak( char * body, int currentKey );

	char * text_replaceAt( int fromKey, int toKey, char * target, char * source );

	struct text * text_new( char * value );

	char * text_removeAllWhiteSpaces( char * a );

	struct text * text_appendObject( struct text * this, struct text * object );

	void text_free( struct text * this );

	char * text_removeSlashFromStart( char * filePath );

	void text_constructor( struct text * this, char * value );

	void text_resize( struct text * this, int size );

	struct text * text_append( struct text * this, const char * value );

	struct text * text_appendDebug( struct text * this, const char * value );

	struct array * text_splitArguments( char * argumentsText );


	int text_exists( char * phrase, char * word );

	int text_extractIndexAtWhiteSpace( char * body, int currentKey );

	int text_extractIndexAfterWord( char * body, int currentKey );

	int text_getIndexBeforeWord( char * body, int currentKey );

	int text_indexOff( char * source, char * token, int fromIndex );

	char * text_reverse( char * str );

	char * text_copy( char * );

	char * text_fromNumber( int number );

	int text_findPreviousLineBreak( char * body, int currentKey );

	char * text_formatLength( char * a, int newLength );

	char * text_slice( char *, int, int);

	int text_countLineBreaks( char * text, int fromIndex );

	char * text_join( struct array * arrayInstance, char * separator );

	int text_findFirstCharacterIndex( char * text, char * character );

	int text_findFirstCharacterReverse( char * body, int fromKey );

	int text_text_findFirstCharacterIndexbackwards( char * body, int fromKey );

	int text_findFirstNextCharacterNotWhiteSpace( char * body, int fromKey );

	int text_seekParenthesesLeftToRight( char * body, int currentKey );

	int text_findQuoteCloseIndex( char * body, int fromKey );

	int text_findFirstNextCharacterNotWhiteSpaceNotParenthesis( char * body, int fromKey );

	int text_text_findFirstCharacterIndexFromIndex( char * text, char * character, int fromIndex );

	char * text_concatenateMultiple( int, ... );

	char * text_concatenate( char * a, char * b );

	struct array * text_split( char *, char * ) ;

	char * text_removeWhiteSpacesLeft(char * );

	char * text_removeWhiteSpacesRight(char * );

	char * text_removeWhiteSpaces( char *  );

	char * text_extractWordBeforeKey( char *, int );



#endif