import { AppId } from '../public/appId';
import { ValidatedSafeString } from '../public/validatedSafeString';
/**
 * This function can be used to validate if a string is a "valid" app id.
 * Valid is a relative term, in this case. Truly valid app ids are UUIDs as documented in the schema:
 * https://learn.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema#id
 * However, there are some older internal/hard-coded apps which violate this schema and use names like com.microsoft.teamspace.tab.youtube.
 * For compatibility with these legacy apps, we unfortunately cannot securely and completely validate app ids as UUIDs. Based
 * on this, the validation is limited to checking for script tags, length, and non-printable characters.
 *
 * @param potentialAppId A string to check if it's a "valid" app id
 * @throws Error with a message describing the exact validation violation
 */
export declare function validateStringLength(potentialAppId: string): void;
export declare function validateSafeContent(potentialAppId: string): void;
export declare const minimumValidAppIdLength = 4;
export declare const maximumValidAppIdLength = 256;
export declare function isStringWithinAppIdLengthLimits(potentialAppId: string): boolean;
export declare function doesStringContainNonPrintableCharacters(str: string): boolean;
/**
 * @hidden
 * Checks if the incoming app id is an instance of AppId
 * @param potentialAppId An object to check if it's an instance of AppId
 * @throws Error with a message describing the violation
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function validateAppIdInstance(potentialAppId: AppId): void;
/**
 * @hidden
 * Checks if the incoming string is an instance of ValidatedSafeString
 * @param incomingString An object to check if it's an instance of ValidatedSafeString
 * @throws Error with a message describing the violation
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function validateSafeStringInstance(incomingString: ValidatedSafeString): void;
