import { z } from 'zod';
import { type AuthToken, type RoomScopeV3Base } from '.';
export declare class SkyWayAuthToken {
    /**uuid */
    jti: AuthToken['jti'];
    /**seconds */
    iat: AuthToken['iat'];
    /**seconds */
    exp: AuthToken['exp'];
    readonly scope: AuthToken['scope'];
    version?: AuthToken['version'];
    tokenString?: string;
    constructor(props: AuthToken);
    static Decode(token: string): SkyWayAuthToken;
    encode(secret: string): string;
    /**@internal */
    toJSON(): {
        jti: string;
        iat: number;
        exp: number;
        scope: {
            app: {
                id: string;
                actions?: "read"[] | undefined;
                analytics?: boolean | undefined;
                channels?: ({
                    id?: string | undefined;
                    name?: string | undefined;
                } & {
                    actions: ("create" | "write" | "delete" | "updateMetadata" | "read")[];
                    members: ({
                        id?: string | undefined;
                        name?: string | undefined;
                    } & {
                        actions: ("create" | "write" | "delete" | "updateMetadata" | "signal")[];
                        publication?: z.objectInputType<{
                            actions: z.ZodArray<z.ZodEffects<z.ZodEnum<["write", "create", "delete", "updateMetadata", "enable", "disable"]>, "create" | "write" | "delete" | "updateMetadata" | "enable" | "disable", "create" | "write" | "delete" | "updateMetadata" | "enable" | "disable">, "many">;
                        }, z.ZodTypeAny, "passthrough"> | undefined;
                        subscription?: z.objectInputType<{
                            /**
                            const validationError = fromZodError(error);
                            throw new SkyWayError({
                              path: log.prefix,
                              info: {
                                ...tokenErrors.invalidParameter,
                                detail: validationError.toString(), // detailをzodでのvalidationエラーに変更
                              },
                              error: validationError,
                            });
                            */
                            actions: z.ZodArray<z.ZodEffects<z.ZodEnum<["write", "create", "delete"]>, "create" | "write" | "delete", "create" | "write" | "delete">, "many">;
                        }, z.ZodTypeAny, "passthrough"> | undefined;
                    } & {
                        [k: string]: unknown;
                    })[];
                    sfuBots?: z.objectInputType<{
                        actions: z.ZodArray<z.ZodEffects<z.ZodEnum<["create", "write", "delete"]>, "create" | "write" | "delete", "create" | "write" | "delete">, "many">;
                        forwardings: z.ZodArray<z.ZodObject<{
                            actions: z.ZodArray<z.ZodEffects<z.ZodEnum<["create", "write", "delete"]>, "create" | "write" | "delete", "create" | "write" | "delete">, "many">;
                        }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
                            actions: z.ZodArray<z.ZodEffects<z.ZodEnum<["create", "write", "delete"]>, "create" | "write" | "delete", "create" | "write" | "delete">, "many">;
                        }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
                            actions: z.ZodArray<z.ZodEffects<z.ZodEnum<["create", "write", "delete"]>, "create" | "write" | "delete", "create" | "write" | "delete">, "many">;
                        }, z.ZodTypeAny, "passthrough">>, "many">;
                    }, z.ZodTypeAny, "passthrough">[] | undefined;
                } & {
                    [k: string]: unknown;
                })[] | undefined;
                turn?: boolean | undefined;
            } & {
                [k: string]: unknown;
            };
        } | ({
            appId: string;
            rooms: ({
                id?: string | undefined;
                name?: string | undefined;
            } & {
                methods: ("create" | "updateMetadata" | "close")[];
                member?: ({
                    id?: string | undefined;
                    name?: string | undefined;
                } & {
                    methods: ("updateMetadata" | "publish" | "subscribe")[];
                } & {
                    [k: string]: unknown;
                }) | undefined;
                sfu?: {
                    enabled?: boolean | undefined;
                    maxSubscribersLimit?: number | undefined;
                } | undefined;
                stt?: {
                    enabled?: boolean | undefined;
                } | undefined;
            } & {
                [k: string]: unknown;
            })[];
            analytics?: {
                enabled?: boolean | undefined;
            } | undefined;
            turn?: {
                enabled?: boolean | undefined;
            } | undefined;
            noiseCancelling?: {
                enabled?: boolean | undefined;
            } | undefined;
        } & {
            [k: string]: unknown;
        });
        encoded: string | undefined;
        version: 3 | 1 | 2 | undefined;
    };
    /**@internal */
    getAppId(): string;
    /**@internal */
    getAnalyticsEnabled(): boolean;
    /**@internal */
    isSfuCreateBotEnabled(channel: RoomScopeV3Base): boolean;
}
//# sourceMappingURL=encoder.d.ts.map