import * as sns from "./sns.generated";
import * as iam from "../../aws-iam";
import * as cdk from "../../core/lib";
/**
 * Collection of grant methods for a ITopicRef
 */
export declare class TopicGrants {
    /**
     * Creates grants for TopicGrants
     */
    static fromTopic(resource: sns.ITopicRef): TopicGrants;
    protected readonly resource: sns.ITopicRef;
    protected readonly encryptedResource?: iam.IEncryptedResource;
    protected readonly policyResource?: iam.IResourceWithPolicyV2;
    private constructor();
    /**
     * Grant the given identity custom permissions
     */
    actions(grantee: iam.IGrantable, actions: Array<string>, options?: cdk.EncryptedPermissionsOptions): iam.Grant;
    /**
     * Grant topic publishing permissions to the given identity
     */
    publish(grantee: iam.IGrantable): iam.Grant;
    /**
     * Grant topic subscribing permissions to the given identity
     */
    subscribe(grantee: iam.IGrantable): iam.Grant;
}
