// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
namespace Microsoft.AspNet.SignalR.Infrastructure
{
public interface IStringMinifier
{
///
/// Minifies a string in a way that can be reversed by this instance of .
///
/// The string to be minified
/// A minified representation of the without the following characters:,|\
string Minify(string value);
///
/// Reverses a call that was executed at least once previously on this instance of
/// without any subsequent calls to sharing the
/// same argument as the call that returned .
///
///
/// A minified string that was returned by a previous call to .
///
///
/// The argument of all previous calls to that returned .
/// If every call to on this instance of has never
/// returned or if the most recent call to that did
/// return was followed by a call to sharing
/// the same argument, may return null but must not throw.
///
string Unminify(string value);
///
/// A call to this function indicates that any future attempt to unminify strings that were previously minified
/// from may be met with a null return value. This provides an opportunity clean up
/// any internal data structures that reference .
///
/// The string that may have previously have been minified.
void RemoveUnminified(string value);
}
}