package org.jetbrains.plugins.clojure.psi.api.ns;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.clojure.psi.api.ClList;
import org.jetbrains.plugins.clojure.psi.api.ClListLike;
import org.jetbrains.plugins.clojure.psi.api.ClVector;
import org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol;
import org.jetbrains.annotations.Nullable;
import com.intellij.psi.PsiNamedElement;
/**
* @author ilyas
*/
public interface ClNs extends ClList, PsiNamedElement {
@Nullable
ClSymbol getNameSymbol();
String getDefinedName();
@Nullable
ClList findImportClause(@Nullable PsiElement place);
@Nullable
ClList findImportClause();
@NotNull
ClList findOrCreateImportClause(@Nullable PsiElement place);
@NotNull
ClList findOrCreateImportClause();
@Nullable
ClListLike addImportForClass(PsiElement place, PsiClass clazz);
}