import { ExecutionContext } from "@nestjs/common"; /** * Core decorator logic shared by all Cognito user decorators */ export declare function createCognitoUserDecorator(validateTokenType?: 'access' | 'id', getRequest?: (ctx: ExecutionContext) => any): (...dataOrPipes: (string | string[] | import("@nestjs/common").PipeTransform | import("@nestjs/common").Type>)[]) => ParameterDecorator; /** * Generic decorator that can be used to inject the cognito user into a controller. * This decorator is agnostic to token type and works with both access and ID tokens. * * @param {string | string[]} [propertyName] The name of the property to inject the user into. * @returns {(target: object, key: string | symbol, descriptor: TypedPropertyDescriptor) => any} * @example @CognitoUser() user: CognitoJwtPayload * @example @CognitoUser("username") username: string * @example @CognitoUser(["cognito:username", "email"]) { username, email }: { username: string, email: string } */ export declare const CognitoUser: (...dataOrPipes: (string | string[] | import("@nestjs/common").PipeTransform | import("@nestjs/common").Type>)[]) => ParameterDecorator; /** * Specialized decorator for Access Token payloads. * This decorator is specifically designed for access tokens and provides better type safety. * * @param {string | string[]} [propertyName] The name of the property to inject the user into. * @returns {(target: object, key: string | symbol, descriptor: TypedPropertyDescriptor) => any} * @example @CognitoAccessUser() user: CognitoAccessTokenPayload * @example @CognitoAccessUser("username") username: string * @example @CognitoAccessUser(["username", "scope"]) { username, scope }: { username: string, scope: string } */ export declare const CognitoAccessUser: (...dataOrPipes: (string | string[] | import("@nestjs/common").PipeTransform | import("@nestjs/common").Type>)[]) => ParameterDecorator; /** * Specialized decorator for ID Token payloads. * This decorator is specifically designed for ID tokens and provides better type safety. * * @param {string | string[]} [propertyName] The name of the property to inject the user into. * @returns {(target: object, key: string | symbol, descriptor: TypedPropertyDescriptor) => any} * @example @CognitoIdUser() user: CognitoIdTokenPayload * @example @CognitoIdUser("cognito:username") username: string * @example @CognitoIdUser(["cognito:username", "email"]) { username, email }: { username: string, email: string } */ export declare const CognitoIdUser: (...dataOrPipes: (string | string[] | import("@nestjs/common").PipeTransform | import("@nestjs/common").Type>)[]) => ParameterDecorator; //# sourceMappingURL=cognito-user.decorator.d.ts.map