| /** |
| * @license |
| * Copyright 2020 Google LLC |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| import * as PrimitiveSet from './primitive_set'; |
| import {Constructor} from './util'; |
| |
| /** |
| * Basic interface for wrapping a primitive. |
| * |
| * A PrimitiveSet can be wrapped by a single primitive in order to fulfil a |
| * cryptographic task. This is done by the PrimitiveWrapper. Whenever a new |
| * primitive type is added to Tink, the user should define a new |
| * PrimitiveWrapper and register it with the Registry. |
| */ |
| export interface PrimitiveWrapper<P> { |
| /** |
| * Wraps a PrimitiveSet and returns a single instance. |
| * |
| */ |
| wrap(primitiveSet: PrimitiveSet.PrimitiveSet<P>): P; |
| |
| /** |
| * Returns the type of the managed primitive. Used for internal management. |
| * |
| */ |
| getPrimitiveType(): Constructor<P>; |
| } |